大家好,目前正在帮老师做一个数据分析的系统,其中有一块是做问卷调查的。由于问卷的题目是固定的,所以没有涉及到数据库,只要把问卷的结果插入到数据库中就ok了。现在我遇到的问题是,用多个RadioButtonList来让用户选择,但是如何一次性获取到多个RadioButtonList的每一个值呢?我最初的方法是一个一个的取值,然后插入到数据库中,感觉这种方法很笨,但是我asp.net不是很熟练,不懂怎么解决这问题,请大家指点一二。谢谢。
我的代码如下:
后台:
string value1 = "";
for (int i = 0; i < RadioButtonList1.Items.Count; i++)
{
if (RadioButtonList1.Items[i].Selected)
{
value1 = RadioButtonList1.Items[i].Value;
}
}
string value2 = "";
for (int i = 0; i < RadioButtonList2.Items.Count; i++)
{
if (RadioButtonList2.Items[i].Selected)
{
value2 = RadioButtonList2.Items[i].Value;
}
}
……此后还有很多行类似上面的代码
前台:
<asp:RadioButtonList ID="RadioButtonList1" runat="server" RepeatDirection="Horizontal">
<asp:ListItem Text="非常重要" Value="0.75,1,1"></asp:ListItem>
<asp:ListItem Text="明显重要" Value="0.5,0.75,1"></asp:ListItem>
<asp:ListItem Text="重要" Value="0,0.25,5"></asp:ListItem>
<asp:ListItem Text="稍微重要" Value="0,0,0.25"></asp:ListItem>
<asp:ListItem Text="同等重要" Value="1"></asp:ListItem>
</asp:RadioButtonList>
你的问题包含两个内容:
1) 如何获取每个radiobuttonlist(以下简称rbl)的选定值
2)你不想 通过书写每一个 radiobuttonlist的 id值 来实现 对所有rbl的遍历?
若是:
1) 第一个问题jKey已经回答了.
2) 思路: 先获取 所有 radiobuttonlist 的控件集合, 然后遍历该控件集合.
List<string> selectedValues=new List<string>();
foreach(Control c in pnlContainer.Controls)
{
if(c is RadioButtonList)
{
RadioButtonList rbl=(RadioButtonList)c;
selectedValues.Add(rbl.SelectedValue);
}
}
aspx页面内,最好 将所有rbl放在一个父控件内
<asp:Panel runat="server" id="pnlContainer">
<asp:RadioButtonList ID="RadioButtonList1" runat="server">
<asp:ListItem Text="非常重要" Value="0.75,1,1"></asp:ListItem>
......
</asp:RadioButtonList>
<asp:RadioButtonList ID="RadioButtonList2" runat="server">
<asp:ListItem Text="非常重要" Value="0.75,1,1"></asp:ListItem>
......
</asp:RadioButtonList>
</asp:Panel>
string value1 = RadioButtonList1.SelectedValue;
string value2 = RadioButtonList2.SelectedValue;
考虑到提交的时间可能比较长,建议使用jquery获取选择数据(包括text和value,需要自己做下小封装),异步提交到后台,做下数据验证
正文完