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

Kyl*_*yle 2 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>
Run Code Online (Sandbox Code Playgroud)

Yur*_*kiy 8

CommandName为每个属性添加属性LinkButton并处理ListView的ItemCommand事件.

您还需要将ListView的DataKeys属性设置为您的数据源对象唯一标识符名称.您可以获取选定的行datakey:

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;
    }
}
Run Code Online (Sandbox Code Playgroud)

按照以下链接获取ListView控件概述:http://msdn.microsoft.com/en-us/library/bb398790.aspx

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