asp.net – 如何访问listview中的按钮?特别是使用button_click来执行操作

我有这个简化的代码:

<asp:ListView ID="ListView1" runat="server" DataSourceID="sqldatasource1">
    <ItemTemplate>
        <asp:Button ID="ButtonTest" runat="server" BackColor="Silver" Text="Add to Cart" />
  </ItemTemplate>
  </asp:ListView>

我试图在按钮后面运行一些代码,但我不知道如何.我无法在列表视图中访问它.这并不重要,但我试图从当前列表视图(产品ID)获取信息并将其传递到下一页.

有人知道如何使用确切的代码来解决这个问题吗?谢谢!

最佳答案 您需要ItemCommand事件.你可以给你的按钮一个命令名,一个命令参数(如果你想),然后在ListView上监听ItemCommand事件

<asp:ListView ID="ListView1" runat="server" OnItemCommand="DoTheCommand" DataSourceID="sqldatasource1">
    <ItemTemplate>
        <asp:Button CommandName="Foo" CommandArgument='<%#Eval("SomeDataBoundProperty")%>' ID="ButtonTest" runat="server" BackColor="Silver" Text="Add to Cart" />
    </ItemTemplate>
</asp:ListView>

在您的代码背后:

void DoTheCommand(object sender, ListViewCommandEventArgs e) {
    string commandName = e.CommandName;
    object commandArg = e.CommandArgument;
    ListViewItem selectedItem = e.Item;
    int dataItemIndex = selectedItem.DataItemIndex;

    if (commandName == "Foo") {
         //and so on
    }
}
点赞