.aspx
<div>
<asp:DataList ID="DataList1" runat="server" Width="355px"
onitemcommand="DataList1_ItemCommand" DataKeyField="id">
<HeaderTemplate>
<asp:CheckBox ID="CheckBox2" runat="server" />
<asp:Label ID="Label3" Width="70px" runat="server" Text="ID"></asp:Label>
<asp:Label ID="Label4" Width="170px" runat="server" Text="imageUrl"></asp:Label>
<asp:Label ID="Label5" runat="server" Text="handle"></asp:Label>
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" />
<asp:Label ID="Label1" Width="70px" runat="server" Text='<%# Eval( "id") %>'></asp:Label>
<asp:Label ID="Label2" Width="170px" runat="server" Text='<%# Eval("imageUrl") %>'></asp:Label>
<asp:Button ID="Button1" runat="server" CommandName="singleDelete" Text="delete" />
</ItemTemplate>
<FooterTemplate>
<asp:Button ID="Button2" runat="server" CommandName="mutlDelete" Text="delete" />
</FooterTemplate>
</asp:DataList>
</div>
.aspx.cs
public partial class _234DeleteData : System.Web.UI.Page { ShowImageBll showImageBll = new BLL.ShowImageBll(); protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { BindDataList(); } } private void BindDataList() { DataSet ds = showImageBll.GetList(); DataList1.DataSource = ds; DataList1.DataBind(); } protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e) { switch (e.CommandName) { case "singleDelete": int id = int.Parse(DataList1.DataKeys[e.Item.ItemIndex].ToString()); if (showImageBll.GetList()!=null) { showImageBll.DeleteSingleList(id); Response.Write("<script>alert('删除成功!')</script>"); BindDataList();//重新绑定数据库 } else { showImageBll.DeleteSingleList(id); Response.Write("<script>alert('删除失败!')</script>"); } break; case "mutlDelete": DataListItemCollection dlic = DataList1.Items;//创建一个DataList列表项集合对象 for (int i = 0; i < dlic.Count; i++) { if (dlic[i].ItemType == ListItemType.AlternatingItem || dlic[i].ItemType == ListItemType.Item) { CheckBox cb=(CheckBox)dlic[i].FindControl("CheckBox1"); if (cb.Checked) { int id1 = int.Parse(DataList1.DataKeys[dlic[i].ItemIndex].ToString()); showImageBll.DeleteSingleList(id1); } } } BindDataList();//重新绑定数据库 break; } } }
总结:
【1】数据源读取Text='<%# DataBinder.Eval(Container.DataItem, "id") %>' 可简化为 Text='<%# Eval( "id") %>'
【2】int id = int.Parse(DataList1.DataKeys[e.Item.ItemIndex].ToString());//读取当前列的key值
【3】 DataListItemCollection dlic = DataList1.Items;//创建一个DataList列表项集合对象