如何知道单击ListView中的哪个LinkBut​​ton

时间:2011-11-30 14:43:40

标签: asp.net listview linkbutton

我目前在ListView的ItemTemplate中有一个LinkBut​​ton。 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>

1 个答案:

答案 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

另外,观看此视频:http://www.pluralsight-training.net/microsoft/players/PSODPlayer?author=dan-wahlin&name=webforms-03&mode=live&clip=0&course=aspdotnet-webforms4-intro