C# 单击行中的按钮时获取ListView项
我有一个创建表的C# 单击行中的按钮时获取ListView项,c#,listview,C#,Listview,我有一个创建表的ListView。表中的每一行都有两个按钮-删除和修改。我正在为每个按钮触发一个click事件,但我不确定如何获取单击该按钮的行中的数据句柄 aspx 我将尝试回答标题中的问题,因为我不理解问题本身 您可以将发送者强制转换为按钮。按钮的NamingContainer是最简单的容器。通过使用item.FindControl(“OtherControlID”),您可以使用它来获取该项中的所有其他控件 比如, public void delete_Onclick(object send
ListView
。表中的每一行都有两个按钮-删除和修改。我正在为每个按钮触发一个click事件,但我不确定如何获取单击该按钮的行中的数据句柄
aspx
我将尝试回答标题中的问题,因为我不理解问题本身 您可以将
发送者
强制转换为按钮。按钮的NamingContainer
是最简单的容器。通过使用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");
}
找不到不在服务器控件中的文本。但是您可以使用
LiteralControl
或标签来显示用户名或电子邮件
<td><asp:Label id="Label1" runat="server"
Text='<%# Eval("user.UserName") %>' />
</td>
现在,您可以使用如上所示的FindControl
获取对codebehind中标签的引用。您应该使用GridView,因为数据是表格格式的。无论如何,您都可以实现ItemCommand事件。这个
您可以自定义按钮
控件的命令名
和命令参数
属性。CommandArgument可以包含一些ID或相关信息。我知道两种解决方案:
1-命令名和命令参数如下
2-您可以使用链接而不是按钮,并发送包含以下内容的查询字符串
您的记录的id与您所在的页面相同,并将querystring放入
代码隐藏(页面加载)并将其用于删除sqlcommadns或将其重定向到另一个页面以进行
编辑目的并最终响应.Redirect()再次返回到您所在的页面。一旦我有了项
,我是否应该能够获取所选行的“用户名”列?您无法找到不在服务器控件中的文本。但是您可以使用LiteralControl或Label来代替。编辑了我的答案。我能不能在td
中添加一个runat=“server”并以这种方式访问它?@bflemi3:哦,是的,它应该与runat=“server”
和ID一起工作,我想你可以将它转换到HtmlTableCell
并使用InnerText
。
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");
}
<td><asp:Label id="Label1" runat="server"
Text='<%# Eval("user.UserName") %>' />
</td>