测验项目,一个问题有一个radiobuttonlist,包含2项(T / F)或4项(a,b,c,d) 问题数量各不相同。面板用于一次只显示一个问题(显示/隐藏)。 在回答用户点击提交按钮的所有问题后,所有答案都应保存在数据库中。在后面的代码中,selecteditem始终为null,value始终为空字符串。
<asp:DataList ID="dtQuestion" runat="server" RepeatDirection="Vertical" OnItemDataBound="FormatDataListRow" >
<ItemTemplate>
<asp:Panel id="panel" runat="server" BorderColor="#536895" BorderStyle="Solid" BorderWidth="1" style="display: none;" EnableViewState="true">
<asp:Label id="lblQuestionDesc" runat="server" Text="" ></asp:Label>
<asp:RadioButtonList id="rbl" runat="server" EnableViewState="true" > </asp:RadioButtonList>
</asp:Panel>
</ItemTemplate>
</asp:DataList>
提交点击。我调用一个搜索页面以查找RBL的函数我能够看到正确的ID和列表项,但没有选择任何内容。
string id;
if (c.GetType().ToString().Equals("System.Web.UI.WebControls.RadioButtonList"))
{
if (c.ID != "rbl")
{
id = c.ID;
al.Add(id + "," + ((RadioButtonList)c).SelectedItem.Value); //SelectedValue); //
}
}
答案 0 :(得分:1)
看来你正在填充页面加载的RadioButtonList - 如果是这样 - 请确保用一个包围RadioButtonList的人口 如果/ Then / Postback阻止: 如果不是Page.IsPostBack那么 '填充你的RBL 结束如果
例如:
if (!IsPostBack)
{
loadradiobuttonlist();
}
答案 1 :(得分:0)
尝试访问提交的值,如下所示:
this.Request.Form[((RadioButtonList)c).UniqueID]
在调试过程中,您始终可以检查this.Request.Form
集合中的值。