起首,我机子的数据库中有一张person表,以下图所示。
如今,我们用DataList控件将表中的信息显现出来,并能够在DataList控件上对数据库中的表举行编辑操纵。
1、起首用vs建立web运用程序,增加web窗体,在web窗体内拉入DataList控件,右击控件,挑选编辑项模板,在这里我们能看到四个模板,个中两个是SelectedItemTemplate和EditItemTemplate,在ItemTemplate模板中拉入两个LinkButton控件,一个将Text改名为检察,CommandName属性改成select,别的一个将Text改成编辑,其CommandName属性改成edit。然后在HTML页面建立SelectedItemTemplate模板,在模板中绑定员工的一切信息。(这里是完成检察员工细致信息的功用)。
2、在EditItemTemplate模板项中增加两个LinkButton控件,Text属性分别为保留和作废,CommandName属性分别为update和cancel,然后再增加一个TextBox控件,用来输入姓名,在这里完成修正员工姓名的功用。
3、我们还能够在属性生成器总变动表格的款式、将字体的色彩、网格的间隔变动一下,这里细致不住不再敖述,末了完毕模板编辑。
4、编辑前台HTML代码
ItemTemplate模板中的代码(用来显现员工的姓名)
<ItemTemplate> <asp:LinkButton ID="lbtnShowDetails" runat="server" CommandName="select" ForeColor="Red">检察</asp:LinkButton> <asp:LinkButton ID="lbtnEdit" runat="server" CommandName="edit" ForeColor="Red">编辑</asp:LinkButton> <%# DataBinder.Eval(Container.DataItem,"personName") %> </ItemTemplate>
SelectedItemTemplate模板中的代码(用来显现员工中的细致信息)
<SelectedItemTemplate> 员工编号: <%# DataBinder.Eval(Container.DataItem,"pID") %> <br /> 员工姓名: <%# DataBinder.Eval(Container.DataItem,"personName") %> <br /> 员工性别: <%# DataBinder.Eval(Container.DataItem,"personSex") %> </SelectedItemTemplate>
EditItemTemplate模板中的代码(用来修正员工姓名)注重:将文本框中的text属性绑定到员工的姓名上。
<EditItemTemplate> <asp:LinkButton ID="lbtnupdate" runat="server" CommandName="update">保留</asp:LinkButton> <asp:LinkButton ID="lbtnCancel" runat="server" CommandName="cancel">作废</asp:LinkButton> <br /> 员工编号:<%# DataBinder.Eval(Container.DataItem,"pID") %> <br />姓名:<asp:TextBox ID="txtName" runat="server" <span style="color:#FF0000;">Text='<%# DataBinder.Eval(Container.DataItem,"personName") %>'</span> Width="50px"> </asp:TextBox> </EditItemTemplate>
末了是页眉和页脚模板
<HeaderTemplate> 模板的页眉 </HeaderTemplate> <FooterTemplate> <br /> 模板的页脚 </FooterTemplate>
5、编辑好了的前台界面以下
6、背景代码的编写
6.1、 编写DataList数据绑定的要领
private void dataBindToDataList() { SqlConnection con = DB.createConnection(); SqlDataAdapter sda = new SqlDataAdapter(); string sql = "select * from person "; sda.SelectCommand = new SqlCommand(sql, con); DataSet ds = new DataSet(); sda.Fill(ds, "per"); DataList1.DataKeyField = "pID"; //将主键存入到DataKeys鸠合当中,以便后面临某一条数据举行编辑。 DataList1.DataSource = ds.Tables["per"]; DataList1.DataBind(); }
6.2、编写Page_Loda事宜,推断页面是不是第一次加载,并在第一次加载页面时绑定数据。
protected void Page_Load(object sender, EventArgs e) { if (!this.IsPostBack) { this.dataBindToDataList(); } }
6.3、编写DataList1_ItemCommand事宜,完成检察员工细致信息功用(条件是我们已在SelectedItemTemplate模板中将员工的细致信息已绑定,如今只是挪用要领将其显现出来)
protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)// e示意DataList传递给该函数的信息。 { if (e.CommandName == "select") { this.DataList1.SelectedIndex = e.Item.ItemIndex; this.dataBindToDataList(); } }
6.4、编写DataList1_EditCommand事宜,完成编辑功用,将EditItemTemplate模板中的信息显现出来。
protected void DataList1_EditCommand(object source, DataListCommandEventArgs e)// e示意DataList传递给该函数的信息。 { this.DataList1.EditItemIndex = e.Item.ItemIndex;//e.Item示意DataList中发生事宜的那一项 this.dataBindToDataList(); }
这时刻,编辑模板项的绑定信息就会显现出来,我们能够在这变动姓名,或许作废编辑,效果图以下
末了是作废修正功用的代码、更新功用的代码、删除功用的代码,事宜分别为DataList1_CancelCommand、DataList1_UpdateCommand、DataList1_DeleteCommand。
protected void DataList1_CancelCommand(object source, DataListCommandEventArgs e)// e示意DataList传递给该函数的信息。 { DataList1.EditItemIndex = -1; //当EditItemIndex属性值为-1时,示意不显现EditItemTemplate模板 dataBindToDataList(); } protected void DataList1_UpdateCommand(object source, DataListCommandEventArgs e) { string ID =DataList1.DataKeys[e.Item.ItemIndex].ToString(); string name = ((TextBox)e.Item.FindControl("txtName")).Text ; SqlConnection con = DB.createConnection(); SqlCommand cmd = new SqlCommand("update person set personName='"+name+"'where pID='"+ID+"'",con); cmd.ExecuteNonQuery(); DataList1.EditItemIndex = -1; dataBindToDataList(); } protected void DataList1_DeleteCommand(object source, DataListCommandEventArgs e) { string ID = DataList1.DataKeys[e.Item.ItemIndex].ToString(); SqlConnection con = DB.createConnection(); SqlCommand cmd = new SqlCommand("delete from person where pID='" + ID + "'", con); cmd.ExecuteNonQuery(); DataList1.EditItemIndex = -1; dataBindToDataList(); }
总结
用DataList控件完成对数据库中person表的操纵,完成检察细致信息,修正操纵,大抵流程是先修正DataList控件的各个模板中绑定的数据,然后守候详细的事宜使该模板中的内容显现出来,末了再对数据举行操纵。当数据适配器DateAdapter对象将数据源中的数据填充到DataSet中后,我么能够用DataList.DataKeyField=“主键字段名” 语句将主键增加到DataList的DataKeys鸠合中,当我们要修正数据的时刻能够再从该鸠合中掏出要编辑的数据项的主键,语句为DataList1.DataKeys[e.Item.ItemIndex]。如许我们就能够为所欲为的修正DataList表中的数据项了。
以上就是《ASP.NET》数据绑定—DataList实践篇的图文代码详解的细致内容,更多请关注ki4网别的相干文章!