gpt4 book ai didi

c# - 单击行中的按钮时获取 ListView 项目

转载 作者:太空狗 更新时间:2023-10-29 22:19:50 26 4
gpt4 key购买 nike

我有一个创建表格的ListView。表中的每一行都有两个按钮 - 删除和修改。我正在为每个按钮触发点击事件,但我不确定如何获取点击按钮所在行中数据的句柄。

aspx

<asp:ListView runat="server" ID="usersListView">
<LayoutTemplate>
<table class="table table-striped">
<thead>
<tr>
<th>User Name</th>
<th>Email</th>
<th>Role</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
<asp:PlaceHolder runat="server" ID="groupPlaceHolder"/>
</tbody>
</table>
</LayoutTemplate>
<GroupTemplate>
<tr>
<asp:PlaceHolder runat="server" ID="itemPlaceHolder"/>
</tr>
</GroupTemplate>
<ItemTemplate>
<td><%# Eval("user.UserName") %></td>
<td><%# Eval("user.Email") %></td>
<td><%# Eval("roles") %></td>
<td>
<button runat="server" id="modify" class="btn btn-mini" title="Modify" onclick="modify_OnClick">
<i class="icon-edit"></i>
</button>&nbsp;
<button runat="server" id="delete" class="btn btn-mini" title="Delete" onclick="delete_OnClick">
<i class="icon-trash"></i>
</button>
</td>
</ItemTemplate>
</asp:ListView>

aspx.cs

public void delete_Onclick(object sender, EventArgs e) {

}

public void modify_Onclick(object sender, EventArgs e) {

}

最佳答案

我会尝试回答标题中的问题,因为我不明白问题本身。

您可以将 sender 强制转换为 Button。 Button 的 NamingContainerListViewItem .您可以通过 item.FindControl("OtherControlID") 使用它来获取该项目中的所有其他控件。

例如;

public void delete_Onclick(object sender, EventArgs e) {
var btn = (Button)sender;
var item = (ListViewItem)btn.NamingContainer;
// find other controls:
var btnModify = (Button)item.FindControl("modify");
}

您无法找到不在服务器控件中的文本。但是您可以使用 LiteralControlLabel 来显示用户名或电子邮件。

<td><asp:Label id="Label1" runat="server"
Text='<%# Eval("user.UserName") %>' />
</td>

现在您可以使用如上所示的 FindControl 在代码隐藏中获取对标签的引用。

关于c# - 单击行中的按钮时获取 ListView 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11460665/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com