此控件满适合企业产品展示类型的站点。
设置页面数据源时的代码,通常其表现出所有的功能。
<asp:DataList ID="DataList1" runat="server" DataKeyField="uid" DataSourceID="SqlDataSource1" > <EditItemStyle Font-Bold="False" Font-Italic="False" Font-Overline="False" Font-Strikeout="False" Font-Underline="False" ForeColor="Maroon" /> <AlternatingItemStyle BackColor="Blue" Font-Bold="False" Font-Italic="False" Font-Overline="False" Font-Strikeout="False" Font-Underline="False" ForeColor="Black" /> <EditItemTemplate> ===========编辑模板======== </EditItemTemplate> <SeparatorStyle Font-Bold="False" Font-Italic="False" Font-Overline="False" Font-Strikeout="False" Font-Underline="False" ForeColor="Gray" /> <SeparatorTemplate> ==================分隔符==================== </SeparatorTemplate> <HeaderTemplate> =======================页眉模板========== </HeaderTemplate> <SelectedItemTemplate> ===========选择模板================ </SelectedItemTemplate> <FooterTemplate> ================页脚模板======= </FooterTemplate> <ItemTemplate> 用户id: <asp:Label ID="uidLabel" runat="server" Text='<%# Eval("uid") %>' /> <br /> 用户名: <asp:Label ID="usernameLabel" runat="server" Text='<%# Eval("username") %>' /> <br /> 密码: <asp:Label ID="passwordLabel" runat="server" Text='<%# Eval("password") %>' /> <br /> 性别: <asp:Label ID="sexLabel" runat="server" Text='<%# Eval("sex") %>' /> <br /> 最后登录时间: <asp:Label ID="lasttimeLabel" runat="server" Text='<%# Eval("lasttime") %>' /> <br /> <br /> </ItemTemplate> </asp:DataList>
执行效果
=======================页眉模板========== |
用户id: 1 用户名: honker 密码: 123456789 性别: 女 最后登录时间: System.Byte[] |
==================分隔符==================== |
用户id: 2 用户名: hacker 密码: 123456 性别: 男 最后登录时间: System.Byte[] |
================页脚模板======= |
//页面的数据源手工添加,后台代码框架尽量用vs生成
1、交替项中增加一个编辑按钮
<ItemTemplate> <asp:LinkButton runat="server" ID="LinkButton1" CommandName="edit" > Edit </asp:LinkButton><br /><br /> </ItemTemplate>
对应的后台代码框架
protected void DataList1_EditCommand(object source, DataListCommandEventArgs e) { DataList1.EditItemIndex = e.Item.ItemIndex; }//显示这行的对应的编辑模板
2、编辑模板的页面代码,尽量与交替项模板显示的数据项保持一致 。
<EditItemTemplate> ID: <asp:Label ID="Label1" runat="server" Text='<%# Eval("uid") %>'> </asp:Label> <br /> Name: <asp:TextBox ID="username" runat="server" Text='<%# Eval("username") %>'> </asp:TextBox> <br /> Description: <asp:TextBox ID="sex" runat="server" Text='<%# Eval("sex") %>'> </asp:TextBox> <br /> <asp:LinkButton ID="LinkButton1" runat="server" CommandName="update" > Save </asp:LinkButton> <asp:LinkButton ID="LinkButton2" runat="server" CommandName="Cancel"> Cencel </asp:LinkButton> </EditItemTemplate>
编辑模板对应的后台程序编写,
protected void DataList1_UpdateCommand(object source, DataListCommandEventArgs e) { //获取主键值的值 string uid = DataList1.DataKeys[e.Item.ItemIndex].ToString(); //从编辑项中控件的id来获取对应的值 String username = ((TextBox)e.Item.FindControl("username")).Text; string sex = ((TextBox)e.Item.FindControl("sex")).Text; //Response.Write(uid+username+sex); //处理数据的代码 DataList1.EditItemIndex = -1; DataList1.DataBind(); } protected void DataList1_CancelCommand(object source, DataListCommandEventArgs e) { DataList1.EditItemIndex = -1; DataList1.DataBind(); }