UI层的抽象,一个页面对应多个表(比如学历、职称等)的添加。
强烈建议写过代码生成器的兄弟进来看看。代码生成器的思路也可以这么用。
终于赶出来了,现写了一遍代码。
感谢大家的支持,感谢大家提出自己的看法。衷心的感谢,真的。
应该是先写第二步的,但是想一想还是先写第三步吧。
一般大项目里面都会有很多的基础信息的表,比如学历、职称等等,最近做了一个项目,居然有四十多个。如果一个一个地写是不是太麻烦了呢?
下面就要介绍一种方法 —— 基本一个页面搞定。
还是先说一下前提吧
VS2003 、 SQL2000 、 webform ,办公系统里的基础信息表的维护。
1、SQL2000里的几个系统表
写过代码生成器的Tx对这几个表都很熟悉吧,sysobjects 、syscolumns 、systypes 。
请打开企业管理器(查询分析器也可以),建立一个视图,粘贴下面的SQL语句,然后保存视图,名字就叫做 V_Sys_TableInfo 吧,后面要用到的哦。
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
SELECT tbl.name AS TableName, tbl.xtype AS TableType, col.name AS FieldName,
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
tt.name AS FieldType, col.length AS FieldLength
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
FROM dbo.syscolumns col INNER JOIN
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
dbo.sysobjects tbl ON col.id = tbl.id INNER JOIN
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
dbo.systypes tt ON col.xtype = tt.xtype
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
WHERE (tbl.xtype = 'u') AND (tt.name <> N'sysname')
看不懂SQL语句没关系,运行一下看看结果就知道了。你发现了什么?你的数据库里的表名、字段名、字段类型和字段大小。
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
那么这些信息有什么用呢?请先回顾一下第一步里保存数据都需要哪些元素。表名、字段名、用户输入的信息。
知道我要怎么用了吧,对,就是要通过表名来获取表所拥有的字段名。
2、DataGrid是不是也可以这么用。
开始绘制表单了。一个一个文本框的拖拽是不是挺烦的,那么一起把需要的控件逗弄出来怎么样?
想想上面得到的记录集,是不是可以利用一下呢?
建立一个UserControl ,拖一个DataGrid 出来,设置三列,第一列绑定 FieldName ,第二列空,第三列设置成模版列,放一个文本框。代码如下
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
<asp:DataGrid id="DG" align="center" runat="server" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px"
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
BackColor="White" CellPadding="4" ForeColor="Black" AutoGenerateColumns="False">
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
<FooterStyle ForeColor="Black" BackColor="#CCCC99">FooterStyle>
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
<SelectedItemStyle Font-Bold="True" ForeColor="White" BackColor="#CC3333">SelectedItemStyle>
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
<HeaderStyle Font-Bold="True" ForeColor="White" BackColor="#333333">HeaderStyle>
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
<Columns>
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
<asp:BoundColumn Visible="False" DataField="FieldName" HeaderText="FieldName">asp:BoundColumn>
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
<asp:BoundColumn DataField="FieldName" HeaderText="字段名">asp:BoundColumn>
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
<asp:TemplateColumn HeaderText="控件">
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
<ItemTemplate>
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
<FONT face="宋体">
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
<hbs:HBSTextBox id="Txt" runat="server" Columns="30">hbs:HBSTextBox>FONT>
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
ItemTemplate>
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
asp:TemplateColumn>
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
Columns>
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
<PagerStyle HorizontalAlign="Right" ForeColor="Black" BackColor="White">PagerStyle>
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
asp:DataGrid>
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
<P>
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" align="center" border="0">
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
<TR>
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
<TD align="center">
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
<asp:Button id="Btn_Save" runat="server" Width="70px" Text=" 确 定 ">asp:Button> <INPUT id="Btn_Return" onclick="myEsc()" type="button" value=" 返 回 " name="Btn_Return">TD>
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
TD>TR>
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
TABLE>
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
P>
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
进入后台,绑定DataGrid。想象一下会出现什么样的效果。
运行效果。
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
先不详细说明了,发代码先。
UserControl 页面 BaseForm.ascx
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
<%
![](https://www.jb51.cc/res/2021/07-03/17/12d50b15d3b0b7ca4ab6216ce927c626.jpg)
@ Register TagPrefix="HBS" Namespace="HBS.Controls" Assembly="HBSControls" %>
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
<asp:DataGrid id="DG" align="center" runat="server" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px"
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
BackColor="White" CellPadding="4" ForeColor="Black" AutoGenerateColumns="False">
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
<FooterStyle ForeColor="Black" BackColor="#CCCC99">FooterStyle>
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
<SelectedItemStyle Font-Bold="True" ForeColor="White" BackColor="#CC3333">SelectedItemStyle>
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
<HeaderStyle Font-Bold="True" ForeColor="White" BackColor="#333333">HeaderStyle>
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
<Columns>
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
<asp:BoundColumn Visible="False" DataField="FieldName" HeaderText="FieldName">asp:BoundColumn>
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
<asp:BoundColumn HeaderText="字段名">asp:BoundColumn>
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
<asp:TemplateColumn HeaderText="控件">
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
<ItemTemplate>
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
<FONT face="宋体">
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
<hbs:HBSTextBox id="Txt" runat="server" Columns="30">hbs:HBSTextBox>FONT>
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
ItemTemplate>
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
asp:TemplateColumn>
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
Columns>
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
<PagerStyle HorizontalAlign="Right" ForeColor="Black" BackColor="White">PagerStyle>
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
asp:DataGrid>
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
<P>
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" align="center" border="0">
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
<TR>
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
<TD align="center">
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
<asp:Button id="Btn_Save" runat="server" Width="70px" Text=" 确 定 ">asp:Button> <INPUT id="Btn_Return" onclick="myEsc()" type="button" value=" 返 回 " name="Btn_Return">TD>
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
TD>TR>
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
TABLE>
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
P>
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
public class BaseForm : System.Web.UI.UserControl
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/07-03/17/12d50b15d3b0b7ca4ab6216ce927c626.jpg)
{
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
override protected void OnInit(EventArgs e)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/07-03/17/12d50b15d3b0b7ca4ab6216ce927c626.jpg)
{
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
//
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
//
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
InitializeComponent();
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
base.OnInit(e);
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
}
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
/**////
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
/// 设计器支持所需的方法 - 不要使用代码编辑器
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
/// 修改此方法的内容。
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
///
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
private void InitializeComponent()
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/07-03/17/12d50b15d3b0b7ca4ab6216ce927c626.jpg)
{
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
this.Btn_Save.Click += new System.EventHandler(this.Btn_Save_Click);
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
this.Load += new System.EventHandler(this.Page_Load);
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
}
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
#endregion
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
protected System.Web.UI.WebControls.Button Btn_Save;
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
protected System.Web.UI.WebControls.DataGrid DG;
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
DataAccessLayer dal = new DataAccessLayer();
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
属性#region 属性
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
protected string Kind = "1";
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
protected string DataID = "";
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
private string _TableName = "";
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
/**////
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
/// 设置表名,用于添加和修改数据
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
///
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
public string TableName
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/07-03/17/12d50b15d3b0b7ca4ab6216ce927c626.jpg)
{
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
get
![](https://www.jb51.cc/res/2021/07-03/17/12d50b15d3b0b7ca4ab6216ce927c626.jpg)
{return _TableName;}
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
set
![](https://www.jb51.cc/res/2021/07-03/17/12d50b15d3b0b7ca4ab6216ce927c626.jpg)
{_TableName = value;}
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
}
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
private string _FieldID = "";
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
/**////
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
/// 设置主键名,用于修改数据
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
///
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
public string FieldID
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/07-03/17/12d50b15d3b0b7ca4ab6216ce927c626.jpg)
{
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
get
![](https://www.jb51.cc/res/2021/07-03/17/12d50b15d3b0b7ca4ab6216ce927c626.jpg)
{return _FieldID;}
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
set
![](https://www.jb51.cc/res/2021/07-03/17/12d50b15d3b0b7ca4ab6216ce927c626.jpg)
{_FieldID = value;}
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
}
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
#endregion
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
private void Page_Load(object sender, System.EventArgs e)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/07-03/17/12d50b15d3b0b7ca4ab6216ce927c626.jpg)
{
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
// 在此处放置用户代码以初始化页面
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
}
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
绑定#region 绑定
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
public void BindDataGrid()
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/07-03/17/12d50b15d3b0b7ca4ab6216ce927c626.jpg)
{
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
this.DG.DataSource = dal.RunSqlDataTable("select * from V_Sys_TableInfo where TableName='" + _TableName + "'");
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
this.DG.DataBind();
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
//隐藏第一行
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
DG.Items[0].Visible = false;
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
}
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
#endregion
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
保存#region 保存
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
private void Btn_Save_Click(object sender, System.EventArgs e)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/07-03/17/12d50b15d3b0b7ca4ab6216ce927c626.jpg)
{
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
//保存数据
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
string[] str1 = new string[DG.Items.Count - 1];
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
string[] str = new string[DG.Items.Count - 1];
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
int i = -1;
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
foreach (DataGridItem item in DG.Items)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/07-03/17/12d50b15d3b0b7ca4ab6216ce927c626.jpg)
{
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
if (i != -1) //掠过第一行
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/07-03/17/12d50b15d3b0b7ca4ab6216ce927c626.jpg)
{
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
//字段名
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
str1[i] = item.Cells[0].Text ;
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
//取值
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
str[i] = ((HBSTextBox)item.Cells[2].FindControl("Txt")).TextTrimNone;
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
}
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
i++;
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
}
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
保存数据#region 保存数据
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
switch (Kind )
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/07-03/17/12d50b15d3b0b7ca4ab6216ce927c626.jpg)
{
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
case "1":
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
//添加时验证是否有相同的记录,代码略。写多了会影响这里的主题
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
//添加数据
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
dal.InsertDataStr(_TableName,str1,str);
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
break;
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
case "2":
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
//修改时验证是否有相同的记录,代码略。写多了会影响这里的主题
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
//修改数据
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
dal.UpdateData(_TableName,str1,str, _FieldID + " = " + DataID);
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
break;
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
}
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
#endregion
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
检查是否出现异常#region 检查是否出现异常
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
if (dal.ErrorMsg.Length > 2)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/07-03/17/12d50b15d3b0b7ca4ab6216ce927c626.jpg)
{
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
Functions.PageRegisterAlert(Page,"保存数据的时候出现意外情况,请与管理员联系!");
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
return ;
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
}
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
Functions.PageRegisterAlert(Page,"保存成功!");
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
#endregion
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
}
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
#endregion
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
}
表单页面 MoreTable.aspx
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
<body MS_POSITIONING="FlowLayout">
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
<form id="Form1" method="post" runat="server">
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
<uc1:BaseForm id="myForm" runat="server" TableName="News">uc1:BaseForm>
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
form>
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
body>
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
//请注意这里,在VS2003里面,这行是不会自动出现的,需要手动填写。
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
protected JYK.Test.UC.BaseForm myForm; //用户控件
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
private void Page_Load(object sender, System.EventArgs e)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/07-03/17/12d50b15d3b0b7ca4ab6216ce927c626.jpg)
{
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
// 在此处放置用户代码以初始化页面
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
Response.Cache.SetNoStore();
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
if (!Page.IsPostBack)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/07-03/17/12d50b15d3b0b7ca4ab6216ce927c626.jpg)
{
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
myForm.BindDataGrid();
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
//把英文的字段名改成中文的
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
myForm.DG.Items[1].Cells[1].Text = "分类";
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
myForm.DG.Items[2].Cells[1].Text = "内容";
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
myForm.DG.Items[3].Cells[1].Text = "标题";
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
myForm.DG.Items[4].Cells[1].Text = "编辑";
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
}
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
}
用户控件只使用一个就可以了。(不知道这算不算抽象)
表单控件是一个页面对应一个数据表,其实也就是设置一下表名,和显示一下字段的中文名。
优点呢:代码少,其他的就不说了。
缺点就很多了:只能用文本框、要单独设置中文名、页面死板不灵活、不够OO,只能单表操作。
不过除了不够OO(准确点说是一点都不OO:)),其他的是都可以改进的。至于怎么改进,如果您感兴趣可以想一想,方法实在是太多了。
原文地址:https://blog.51cto.com/u_15179455/2729581
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。