Asp.Netserver控制发展Grid实现(一个)UI转让
使用Asp.Net办Web开发时间,控制系统提供了,目的,有时很难达到理想的。然后,有几种方法来解决,例如,使用html+js形式,在所需界面的布局的前端,然后通过ajax和其他方式获得的数据。为了实现该目标。
但这样做,很费劲。,更加费劲。有人。会直接将该界面的代码进行拷贝。但这对后来的维护必定带来更大的问题。所以就考虑。有没有一种方式能够让布局得到重用,又便于维护的。Asp.Net的控件能够非常方便的布局,同一时候又能在后台中直接操作控件。实现相关的数据逻辑。所以就想借用asp.net的技术,来自行封装出控件。
有的人会说。直接使用asp.net的用户自己定义控件封装,不也能够达到目的么?在一定程度上,确实是能够的。可是假设,我们须要很多其它的特性的时候。这个依旧非常难满足要求。
特别是当我们在移动端使用一些库进行开发时,问题会更严重。
比方在移动端使用JqueryMobile进行开发时,因为JqueryMobile是基于前端的,所以对于后端的使用会有些棘手。这样的情况。就能够考虑asp.net+jquerymobile来达成。
(使用asp.net mvc4来结合jquerymobile的不属性该范围)
我们通过简单的封装。来实现一个Grid控件。先看一下效果图。
该效果图的前后面代码例如以下:
前端代码default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="default.aspx.cs" Inherits="Demo._default" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<S:Grid runat="server" ID="Grid_Edit">
<Columns>
<S:BoundField runat="server" ID="BoundField1" HeaderText="货号" DataField="NO" />
<S:BoundField runat="server" ID="BoundField2" HeaderText="类型" DataField="Type" />
<S:BoundField runat="server" ID="BoundField3" HeaderText="状态" DataField="Status" />
</Columns>
</S:Grid>
</div>
</form>
</body>
</html>
当中带S前缀的控件就是封装的Grid控件。
后面代码default.aspx.cs
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls; namespace Demo
{
public partial class _default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
InitLoad();
}
} private void InitLoad()
{
Grid_Edit.DataSource = GenerateData();
} private DataTable GenerateData()
{
DataTable dt = new DataTable();
dt.Columns.Add("NO");
dt.Columns.Add("Type");
dt.Columns.Add("Status"); dt.Rows.Add(new String[] { "H10001", "食品", "已售完" });
dt.Rows.Add(new String[] { "H10002", "蔬菜", "待销售" });
dt.Rows.Add(new String[] { "H10003", "水果", "待销售" });
dt.Rows.Add(new String[] { "H10004", "器具", "销售中" }); return dt;
}
}
}
给Grid_Edit的DataSource赋值。
从代码中能够看到,S:Grid内部有一个Columns,在Columns中还有S:BoundField字段。在S:BoundField字段中有HeaderText和DataField属性。
当中HeaderText就是列头。DataField就是绑定的字段,与后台代码的DataSource的字段相应。
这样的操作方式与Asp.Net的GridView相似。
所以我们要封装出一个Grid,至少须要做下面几件事:
1.定义一个Grid类
2.在Grid类中包括Columns的属性。
3.在Columns的属性中。必须可以容纳BoundField字段。
4.必须在编辑器中可以直接敲出<Columns>。
详细实现,请看《Asp.Netserver控件开发的Grid实现(二)》
版权声明:本文博客原创文章,博客,未经同意,不得转载。
Asp.Netserver控制发展Grid实现(一个)UI转让的更多相关文章
- Asp.Netserver控件开发的Grid实现(三)列编辑器
以下是GridColumnsEditor的实现代码: GridColumnsEditor.cs using System; using System.Collections.Generic; usin ...
- Kendo Web UI Grid添加一个html控件如(checkbox,button)
在Kendo Web UI Grid增加一个控件如效果图: <div id="grid1"></div><script> $("#gr ...
- 在一个空ASP.NET Web项目上创建一个ASP.NET Web API 2.0应用
由于ASP.NET Web API具有与ASP.NET MVC类似的编程方式,再加上目前市面上专门介绍ASP.NET Web API 的书籍少之又少(我们看到的相关内容往往是某本介绍ASP.NET M ...
- 细说 ASP.NET控制HTTP缓存[转]
阅读目录 开始 正常的HTTP请求过程 缓存页的请求过程 缓存页的服务端编程 什么是304应答? 如何编程实现304应答 如何避开HTTP缓存 在上篇博客[细说 ASP.NET Cache 及其高级用 ...
- 【转】Pro Android学习笔记(十三):用户界面和控制(1):UI开发
目录(?)[-] UI开发 方式一通过XML文件 方式二通过代码 方式三XML代码 UI开发 先理清一些UI概念: view.widget.control:这三个名词其实没有什么区别,都是一个UI元素 ...
- 新建一个UI窗口-XproerUI(MFC)教程
版权所有 2009-2015 荆门泽优软件有限公司 保留所有权利 产品首页:http://www.ncmem.com/apps/xproerui/index.asp 在线文档(XproerUI):Xp ...
- 创建第一个UI
创建一个2D UI 制作UI时,首先要创建UI的"根".在Unity顶部NGUI菜单中选择Create,然后选择2D UI. 创建完成后,在Scene窗口中,NGUI自动生成了一个 ...
- ASP.NET的三层架构(DAL,BLL,UI)
ASP.NET的三层架构(DAL,BLL,UI) BLL 是业务逻辑层 Business Logic Layer DAL 是数据访问层 Data Access Laye ...
- 006.Adding a controller to a ASP.NET Core MVC app with Visual Studio -- 【在asp.net core mvc 中添加一个控制器】
Adding a controller to a ASP.NET Core MVC app with Visual Studio 在asp.net core mvc 中添加一个控制器 2017-2-2 ...
随机推荐
- Ubuntu下轻松切换GDM, LightDM , KDM
如果已经安装LightDM和GDM登录显示器.那么在Ubuntu下怎么在各种DM间任意切换呢? 举例: 以切换到GDM为例,打开终端,使用命令: sudo dpkg-reconfigure gdm 接 ...
- Binder Proxy技术方案
Binder Proxy技术方案 作者 低端码农 时间 2014.08.23 0x0 看到有多朋友尝试通过hook系统进程system_process的ioctl,以企图截获系统的IPC通讯.这个方法 ...
- 冒泡排序算法 C++和PHP达到
冒泡排序是小元素向前或向后的大要素.两个相邻元件之间的比较结果更.交换也这两个元件之间发生.它是最慢的排序算法. 效率最低的算法. 时间复杂度: 它是最差时间复杂度为:O(n^2),冒泡排序最好的时间 ...
- java实现大数相加问题
闲来没事.写了个acm中常常遇到的大数加减问题的java 解决代码,我想说.用java的BigInteger 非常easy. 大爱java!! 比如: 实现多组输入的大数加减问题: import ja ...
- CareerCup它1.8 串移包括问题
[称号] 原文: 1.8 Assume you have a method isSubstring which checks if one word is a substring of another ...
- C#并行编程
C#并行编程中的Parallel.Invoke 一.基础知识 并行编程:并行编程是指软件开发的代码,它能在同一时间执行多个计算任务,提高执行效率和性能一种编程方式,属于多线程编程范畴.所以我们在设计过 ...
- C#中禁止程序多开
原文:C#中禁止程序多开 方法一.使用Mutex bool createdNew; //返回是否赋予了使用线程的互斥体初始所属权 System.Threading.Mutex i ...
- 笔试题&面试题:输入一个维度,逆时针打印出一个指定矩阵
称号:考虑到用户层面.打印出指定的矩阵,例如,一个给定的用户10,例如,下面的输出应被视为在图: 程序如下所示: #include <stdio.h> #include <mallo ...
- 基于RDP开源许可rdesktop基本介绍
**************************************************************************************************** ...
- 高速压缩跟踪(fast compressive tracking)(CT)算法分析
本文为原创,转载请注明出处:http://blog.csdn.net/autocyz/article/details/44490009 Fast Compressive Tracking (高速压缩跟 ...