我目前在ListView的ItemTemplate中有一个LinkButton。 ListView中的每个按钮都应该调用相同的单击事件处理程序。但是,在处理程序中,我需要知道单击了哪个按钮。这可能吗?
<asp:ListView runat="server" ID="lvKeyGroup">
<LayoutTemplate>
<table>
<asp:Placeholder runat="server" ID="itemPlaceholder" />
</table>
</LayoutTemplate>
<ItemTemplate>
<tr>
<td>[<asp:LinkButton runat="server" Text="Remove" OnClick="lbRemoveAuthGroup_Click" />]</td>
<td><%# Eval("AuthorizationGroup") %></td>
</tr>
</ItemTemplate>
</asp:ListView>
答案 0 :(得分:8)
为每个CommandName
添加LinkButton
属性并处理ListView的ItemCommand
事件。
您还需要将ListView的DataKeys
属性设置为您的数据源对象唯一标识符名称。您可以获得选定的行数据键:
void ListView1_ItemCommand(object sender, ListViewCommandEventArgs e)
{
// in assumption that your data item's unique identifier type is Int32
var dataKey = (int)ListView1.DataKeys[e.Item.DataItemIndex].Value;
switch(e.CommandName)
{
case "Remove":
// your code here
break;
}
}
按照此链接查看ListView控件概述:http://msdn.microsoft.com/en-us/library/bb398790.aspx