如何从单选按钮列表和复选框列表中获取选定的值?
How can I get selected values from radio button list and check box list?
我正在尝试从 asp.net 的单选按钮列表和复选框列表中获取选定的值,C#。
这是我的代码。
aspx.cs
protected void Next_Click(object sender, EventArgs e)
{
var retList = new List<string>();
foreach (RepeaterItem item in questionRepeater.Items)
{
// Checking the item is a data item
if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem)
{
var rdbList = item.FindControl("RadioButtonList1") as RadioButtonList;
// Get the selected value
if (rdbList != null)
{
retList.Add(rdbList.SelectedValue);
}
}
}
foreach (RepeaterItem item in questionRepeater.Items)
{
// Checking the item is a data item
if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem)
{
var rdbList = item.FindControl("CheckBoxList1") as CheckBoxList;
// Get the selected value
if (rdbList != null)
{
retList.Add(rdbList.SelectedValue);
}
}
}
}
aspx
<asp:Repeater ID="questionRepeater" runat="server">
<ItemTemplate>
<div runat="server" visible='<%# (Eval("QUESTION_TYPE").ToString() ==
"0") %>'>
<table style="width:100%; table-layout: fixed;">
<asp:RadioButtonList id="RadioButtonList1" CellSpacing="50"
TextAlign="Left" runat="server"
DataSource='<%#GetChild(Container.DataItem,"ChoicesRelate") %>'
DataTextField="CHOICES_CONTENT" DataValueField="CHOICES_NO">
</asp:RadioButtonList>
</table>
</div>
<div runat="server" visible='<%# (Eval("QUESTION_TYPE").ToString() ==
"1") %>'>
<table style="width:100%; table-layout: fixed;">
<asp:CheckBoxList id="CheckBoxList1" CellSpacing="50" TextAlign="Left"
runat="server"DataSource='<%#GetChild(Container.DataItem,"ChoicesRelate")
%>' DataTextField="CHOICES_CONTENT" DataValueField="CHOICES_NO">
</asp:CheckBoxList>
</table>
</div>
<br />
</ItemTemplate>
</asp:Repeater>
我参考了下面的答案。
问题
我无法从复选框列表中获取所有选定值(只有一个值),而我可以从单选按钮列表中获取所有值..
我应该怎么办?
请帮帮我..
你可以试试这样:
using System.Linq
...
foreach (RepeaterItem item in questionRepeater.Items)
{
// Checking the item is a data item
if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem)
{
var rdbList = item.FindControl("CheckBoxList1") as CheckBoxList;
// Get the selected value
if (rdbList != null)
{
//get selected items' values
List<string> selectedItems = rdbList.Items.Cast<ListItem>()
.Where(li => li.Selected)
.Select(li => li.Value)
.ToList();
//add to your list of strings
retList.AddRange(selectedItems);
}
}
}
或者,如果您不想使用 Linq,
if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem)
{
var rdbList = item.FindControl("CheckBoxList1") as CheckBoxList;
// Get the selected value
if (rdbList != null)
{
foreach (ListItem li in rdbList.Items)
{
if (li.Selected)
retList.Add(li.Value);
}
}
}
我正在尝试从 asp.net 的单选按钮列表和复选框列表中获取选定的值,C#。 这是我的代码。
aspx.cs
protected void Next_Click(object sender, EventArgs e)
{
var retList = new List<string>();
foreach (RepeaterItem item in questionRepeater.Items)
{
// Checking the item is a data item
if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem)
{
var rdbList = item.FindControl("RadioButtonList1") as RadioButtonList;
// Get the selected value
if (rdbList != null)
{
retList.Add(rdbList.SelectedValue);
}
}
}
foreach (RepeaterItem item in questionRepeater.Items)
{
// Checking the item is a data item
if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem)
{
var rdbList = item.FindControl("CheckBoxList1") as CheckBoxList;
// Get the selected value
if (rdbList != null)
{
retList.Add(rdbList.SelectedValue);
}
}
}
}
aspx
<asp:Repeater ID="questionRepeater" runat="server">
<ItemTemplate>
<div runat="server" visible='<%# (Eval("QUESTION_TYPE").ToString() ==
"0") %>'>
<table style="width:100%; table-layout: fixed;">
<asp:RadioButtonList id="RadioButtonList1" CellSpacing="50"
TextAlign="Left" runat="server"
DataSource='<%#GetChild(Container.DataItem,"ChoicesRelate") %>'
DataTextField="CHOICES_CONTENT" DataValueField="CHOICES_NO">
</asp:RadioButtonList>
</table>
</div>
<div runat="server" visible='<%# (Eval("QUESTION_TYPE").ToString() ==
"1") %>'>
<table style="width:100%; table-layout: fixed;">
<asp:CheckBoxList id="CheckBoxList1" CellSpacing="50" TextAlign="Left"
runat="server"DataSource='<%#GetChild(Container.DataItem,"ChoicesRelate")
%>' DataTextField="CHOICES_CONTENT" DataValueField="CHOICES_NO">
</asp:CheckBoxList>
</table>
</div>
<br />
</ItemTemplate>
</asp:Repeater>
我参考了下面的答案。
问题
我无法从复选框列表中获取所有选定值(只有一个值),而我可以从单选按钮列表中获取所有值.. 我应该怎么办? 请帮帮我..
你可以试试这样:
using System.Linq
...
foreach (RepeaterItem item in questionRepeater.Items)
{
// Checking the item is a data item
if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem)
{
var rdbList = item.FindControl("CheckBoxList1") as CheckBoxList;
// Get the selected value
if (rdbList != null)
{
//get selected items' values
List<string> selectedItems = rdbList.Items.Cast<ListItem>()
.Where(li => li.Selected)
.Select(li => li.Value)
.ToList();
//add to your list of strings
retList.AddRange(selectedItems);
}
}
}
或者,如果您不想使用 Linq,
if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem)
{
var rdbList = item.FindControl("CheckBoxList1") as CheckBoxList;
// Get the selected value
if (rdbList != null)
{
foreach (ListItem li in rdbList.Items)
{
if (li.Selected)
retList.Add(li.Value);
}
}
}