C# 从ListView获取选中的复选框值
我在一个列表视图中有以下标记,每行有一个复选框对象-我想从中找到选中的复选框值:C# 从ListView获取选中的复选框值,c#,asp.net,C#,Asp.net,我在一个列表视图中有以下标记,每行有一个复选框对象-我想从中找到选中的复选框值: <asp:ListView ID="chkboxList" runat="server" DataKeyNames="id"> <LayoutTemplate> <table id="audiencechklistbox" class="table table-striped bootstrap-datatable datatable dataTable ta
<asp:ListView ID="chkboxList" runat="server" DataKeyNames="id">
<LayoutTemplate>
<table id="audiencechklistbox" class="table table-striped bootstrap-datatable datatable dataTable table-hover">
<tr>
<th>Audience Name</th>
</tr>
<asp:PlaceHolder runat="server" ID="itemPlaceholder"></asp:PlaceHolder>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr>
<td>
<asp:CheckBox ID="audienceList" value='<%# Eval("id") %>' Text='<%# Eval("name") %>' runat="server" CssClass="checkbox_nowrap"/>
</td>
</tr>
</ItemTemplate>
</asp:ListView>
观众姓名
我试图使用以下内容来查找复选框中选定的值,但似乎无法找到除选定文本以外的任何内容。我在SO中看过很多类似的问题,但似乎找不到一个符合我的情况
如何查找选定的值而不是复选框显示的文本?我的Lambda表达式没有为x.value提供Intellisense选项
var findCheckedQuery = chkboxList.Controls[0]
.Controls
.Cast<Control>()
.Select(ctrl => ctrl.FindControl("audienceList") as CheckBox)
.Where(chk => chk != null && chk.Checked);
String[] result = findCheckedQuery.Select(x => x.Text).ToArray();
var findCheckedQuery=chkboxList.Controls[0]
.控制
.Cast()
.Select(ctrl=>ctrl.FindControl(“audienceList”)作为复选框)
.Where(chk=>chk!=null&&chk.Checked);
String[]result=findCheckedQuery.Select(x=>x.Text.ToArray();
感谢您的帮助。提前感谢。服务器端不公开诸如值之类的属性,因此您指定的属性将被视为自定义属性。要访问它,请使用:
x.Attributes["value"]
或者(不确定哪一个会起作用)
然而,由于这是一个仅用于渲染的自定义属性,我不完全确定它甚至可以在post back上像那样访问。如您所见,复选框控件不支持值。无论如何,试试看
如果它不起作用,请考虑,这是稍微有限的控件,但确实提供了必要的<代码>值< /代码>属性。在标记中,这应该简单到
<input ID="audienceList" Value='<%# Eval("id") %>' Text='<%# Eval("name") %>' runat="server" CssClass="checkbox_nowrap"/>
在后面的代码中,您当然需要更改将控件强制转换到的类。x.Attributes[“value”]起作用。我一直在想,我需要查看其他方法或属性的内部。非常感谢你。
<input ID="audienceList" Value='<%# Eval("id") %>' Text='<%# Eval("name") %>' runat="server" CssClass="checkbox_nowrap"/>