该文章翻译来源于http://www.dotnetbips.com/articles/displayarticledetails.aspx?articleid=520,然后我结合自己的数据库修改了一下它数据库的连接与配置.
创建一个简单的Web站点
开始用Visual Studio创建一个新的Web站点(这里我的IDE是Visual Web Developer 2005).将GridView控件和SqlDataSource控件拖放在缺省的Web窗体上.在设计的时候不要对这两个控件设置任何属性.我们将会一直做那些via code.
现在关键的是Page_Load事件的代码
protected void Page_Load(object sender, EventArgs e)
{
SqlDataSource1.ConnectionString = "Data Source=服务器名;Initial Catalog=数据库名;Persist Security Info=True;User ID=用户名;Password=密码";
SqlDataSource1.SelectCommand = "select pkey,previousName,departmentName,isSubCompany from DEPARTMENT";
SqlDataSource1.UpdateCommand = "update DEPARTMENT set previousName=@previousName,departmentName=@departmentName,isSubCompany=@isSubCompany where pkey=@pkey";
SqlDataSource1.UpdateParameters.Add("@previousName","");
SqlDataSource1.UpdateParameters.Add("@departmentName","");
SqlDataSource1.UpdateParameters.Add("@isSubCompany","");
SqlDataSource1.UpdateParameters.Add("@pkey","");
if (!Page.IsPostBack)
{
GridView1.DataSourceID = "SqlDataSource1";
GridView1.AutoGenerateColumns = false;
GridView1.DataKeyNames = new string[] { "pkey" };
GridView1.AllowPaging = true;
GridView1.AllowSorting = true;
GridView1.PageSize = 5;
BoundField bf1 = new BoundField();
BoundField bf2 = new BoundField();
BoundField bf3 = new BoundField();
BoundField bf4 = new BoundField();
bf1.HeaderText = "Pkey";
bf1.DataField = "pkey";
bf1.ReadOnly = true;
bf1.SortExpression = "pkey";
bf2.HeaderText = "PreviousName";
bf2.DataField = "previousName";
bf2.SortExpression = "previousName";
bf3.HeaderText = "DepartmentName";
bf3.DataField = "departmentName";
bf3.SortExpression = "departmentName";
bf4.HeaderText = "IsSubCompany";
bf4.DataField = "isSubCompany";
bf4.SortExpression = "isSubCompany";
CommandField cf = new CommandField();
cf.ButtonType = ButtonType.Link;
cf.ShowCancelButton = true;
cf.ShowEditButton = true;
GridView1.Columns.Add(bf1);
GridView1.Columns.Add(bf2);
GridView1.Columns.Add(bf3);
GridView1.Columns.Add(bf4);
GridView1.Columns.Add(cf);
}
}
这些代码会被以下几节仔细分析
配置 SQL 数据源控件
设置SQL 数据源控件ConnectionString 属性来要求一个数据库连接字符串.在我们的例子里面我们将使用到Northwind 数据库的Employees 表. 然后SelectCommand 和 UpdateCommand 属性对应于SELECT 和UPDATE查询. UPDATE 查询是重要的,它提到UPDATE 表达式指定的参数名称必须与该表里的列名称相匹配.UPDATE表达式包括三个参数:@FirstName,@LastName 和@EmployeeID(我这里是:@pkey,@previousName ,@departmentName和@isSubComany).然后这些参数被添加到UpdataParameters集合里面.
配置 GridView 控件
GridView控件使用SqlDataSource1作为它的数据源.通过设置GridView的属性DataSourceID可以指出.甚至更多一些GridView的属性可以被设置.你需要仅仅一次设置这些属性,因此它们在"If"条件里面产生的.AutoGenerateColumns属性指出是否自动产生GridView数据列.我们设置这个属性为false,正如我们希望添加他们via code. DataKeyNames属性是一个指定主键的字符串数组.AllowPaging和AllowSorting属性分别具有分页和排序的特征.PageSize属性设定页大小为5页.
创建绑定列
GridView控件能够包含很多类型的列,例如BoundField,HyperLinkField 和TemplateField.在这个例子我们将使用到BoundField列.我们分别需要三个绑定列EmployeeID,FirstName 和LastName(这里我用pkey,previousName,departmentName和isSubCompany作为绑定列).一个绑定域代表一个称为BoundField类. BoundField类的HeaderText属性指定该列的标题.DataField属性指定我们需要显示的表里面列的名称.SortExpression属性控制绑定域是否可排序的.如果你为该列设置SortExpression属性,然后绑定域基于该列可排序的.既然EmployeeID绑定列代表主键,我们设置它的只读属性为true.这样将会使用到它不可编辑.(这里我设置pkey的只读属性为true).
为了能够提供编辑特征,你需要为GridView 添加CommandField列.CommandField类的ButtonType属性指定按纽的类型.可能值为Button,LinkButton和ImageButton.ShowCancelButton和ShowEditButton属性决定按钮的编辑和取消是否显示出来.
我们只要把我们创建的列添加到GridView数据列的集合里就可以了.
=============================================================
小第刚翻译的一篇技术性文章,请各位朋友指教,也希望各位朋友能够看得懂!还有via code是什么意思,呵呵!希望能够得到完整的解答!谢谢!
评论