前台:
<asp:DataList ID="dlModule" runat="server" Width="100%" RepeatColumns="1" DataKeyField="ProjectId" RepeatDirection="Horizontal" OnItemDataBound="dlModule_ItemDataBound" >
<AlternatingItemStyle />
<HeaderStyle />
<ItemTemplate>
<table >
<tr >
<td align="right" style="text-align:right; vertical-align:top">
<%# DataBinder.Eval(Container.DataItem,"Name") %> </td>
<td align="left">
<asp:DataList ID="dlFunction" runat="server" RepeatColumns="1" DataKeyField="Uid" RepeatDirection="Horizontal" >
<ItemTemplate>
--<asp:Label ID="reousrce" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"Name") %>'></asp:Label>
<asp:LinkButton ID="edit" Text="编辑" runat="server"> </asp:LinkButton>
<asp:LinkButton CommandArgument='<%# Eval("Uid") %>' CommandName="delete" ID="delete" Text="删除" runat="server"></asp:LinkButton>
</ItemTemplate>
</asp:DataList>
</td>
</tr>
</table>
</ItemTemplate>
<AlternatingItemTemplate>
<table >
<tr >
<td align="right" style="text-align:right; vertical-align:top">
<%# DataBinder.Eval(Container.DataItem,"Name") %> </td>
<td align="left"> <asp:DataList ID="dlFunction" runat="server" RepeatColumns="1" DataKeyField="Uid" RepeatDirection="Horizontal" >
<ItemTemplate>
--<asp:Label ID="reousrce" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"Name") %>'></asp:Label>
<asp:LinkButton ID="edit" Text="编辑" runat="server"> </asp:LinkButton>
<asp:LinkButton ID="delete" CommandArgument='<%# Eval("Uid") %>' CommandName="delete" Text="删除" runat="server"></asp:LinkButton>
</ItemTemplate>
</asp:DataList>
</td>
</tr>
</table>
</AlternatingItemTemplate>
</asp:DataList>
后台:
protected void dlModule_ItemDataBound(object sender, DataListItemEventArgs e)
{
Control container = e.Item;
ListItemType itemType = e.Item.ItemType; if (itemType == ListItemType.Item || itemType == ListItemType.AlternatingItem)
{
Project p = e.Item.DataItem as Project;
if (p == null)
{
return;
} DataList dlFunc = (DataList)container.FindControl("dlFunction");// 得到内层的dataList if (null != dlFunc)
{
int intModuleID =p.ProjectId; dlFunc.DataSource = ProjectDAL.GetResourceByUid(intModuleID);
dlFunc.DataBind();
}
}
}现在这个dataList在内层,怎么执行删除命令啊?那位高手做过啊?
<asp:TemplateField HeaderText ="Del">
<ItemTemplate >
<asp:HyperLink ID="HyperLink_drop" runat="server" ImageUrl ="../images/b_drop.png" NavigateUrl ='<%# "ConfirmPage.aspx?type=shipper&ID=" +DataBinder.Eval(Container.DataItem,"ID") %>'></asp:HyperLink>
</ItemTemplate>
<ItemStyle CssClass ="GV_ItemStyle"/>
<HeaderStyle CssClass ="GV_HeaderStyle"/>
</asp:TemplateField>
找到GV的删除事件,内写也行啊:
protected void gdv_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName.Equals("Del"))
{
string[] aArray = e.CommandArgument.ToString().Split(',');
int expensesid = Convert.ToInt32(aArray[0]);
string categorylistdesc = aArray[1].ToString();
DonationDataAccess.DonationExpensesDAO expdao = new DonationDataAccess.DonationExpensesDAO();
expdao.Deleterecord(expensesid);
}
}
{
LinkButton LinkButton1 = (LinkButton)sender;
//删除
delete(LinkButton1.CommandArgument);
}
编辑也差不多,直接在cs加个事件就可以。
直接手工写个事件上去,把这个事件给那个linkbutton就可以了。
E.comandArgument