Radiobuttonlist selecteditem始终为null

时间:2012-09-07 23:28:59

标签: selecteditem radiobuttonlist

测验项目,一个问题有一个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);  //
                }
            }

2 个答案:

答案 0 :(得分:1)

看来你正在填充页面加载的RadioButtonList -  如果是这样 - 请确保用一个包围RadioButtonList的人口  如果/ Then / Postback阻止:  如果不是Page.IsPostBack那么  '填充你的RBL  结束如果

例如:

        if (!IsPostBack)
        {
            loadradiobuttonlist();
        }

答案 1 :(得分:0)

尝试访问提交的值,如下所示:

this.Request.Form[((RadioButtonList)c).UniqueID]

在调试过程中,您始终可以检查this.Request.Form集合中的值。