获取单击事件ASP.NET的ListView绑定数据

本文关键字:ListView 绑定 数据 NET 单击 事件 ASP 获取 | 更新日期: 2023-09-27 17:58:36

我正在尝试获取事件上绑定到EditItemTemplate的数据的值。ListView id是lvProducts,如何在UpdateButton_Click方法中引用项的数据?

这是编辑项目模板:

<EditItemTemplate>
                         <tr>
                            <td class="narrow"><asp:Label runat="server" Text='<%#Bind("ProductID")%>' ID="idLabel"></asp:Label></td>
                            <td class="wide"><asp:Textbox runat="server" Text='<%#Bind("ProductTitle")%>' ID="nameEdit"></asp:Textbox><span style="color:red">*</span></td>
                            <td class="narrow"><asp:Textbox runat="server" Text='<%#Bind("StockAmount")%>' TextMode="Number" ID="Label4"></asp:Textbox></td>
                            <td class="narrow"><asp:Label runat="server" Text='<%#Bind("AvailableAmount")%>' ID="faxEdit"></asp:Label></td>
                            <td class="narrow"><asp:Checkbox runat="server" Checked='<%#Bind("ProductStatus")%>' Enabled="true" ID="Label6"></asp:Checkbox></td>
                            <td class="wide" style="text-align:center;"> <asp:LinkButton ID="UpdateButton" ToolTip='<%#Eval("ProductID")%>' OnClick="UpdateButton_Click" runat="server" CommandName="Update" Text="Save" />&nbsp;
                                 <asp:LinkButton ID="CancelButton" runat="server" CommandName="Cancel" Text="Cancel" />
                            </td>
                        </tr>
                    </EditItemTemplate>

C#:

 protected void UpdateButton_Click(object sender, EventArgs e)
    {
???
    }

获取单击事件ASP.NET的ListView绑定数据

我还没有测试过,但应该是这样的:

     protected void UpdateButton_Click(object sender, EventArgs e)
{
    if (e.CommandName == "Cancel")
    {
        ListViewDataItem lvd = (ListViewDataItem)((Control)e.CommandSource).NamingContainer;
        //Same two lines for each value
        Label ID = lvd.FindControl("idLabel") as Label;
        string id = id.ToString();
    }
}

将按钮的CommandArgument设置为ProductId(假设这是主键)。

<asp:LinkButton ID="UpdateButton" ToolTip='<%#Eval("ProductID")%>' OnClick="UpdateButton_Click" runat="server" CommandArgument='<%#Eval("ProductID")%>' CommandName="Update" Text="Save" />

然后从事件中的按钮获取主键。并使用它来加载数据、进行更新和保存到数据库中。

protected void UpdateButton_Click(object sender, EventArgs e)
{
    LinkButton btn=sender as LinkButton;
    string productid=btn.CommandArgument;
    //now update your data
}