1

测验项目,一个问题有一个单选按钮列表,其中包含 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);  //
                }
            }
4

2 回答 2

1

似乎您正在页面加载时填充 RadioButtonList - 如果是这样 - 请确保您使用 If/Then/Postback 块围绕 RadioButtonList 的填充:如果不是 Page.IsPostBack then ' 填充您的 RBL end if

例如:

        if (!IsPostBack)
        {
            loadradiobuttonlist();
        }
于 2014-01-03T18:24:38.873 回答
0

Try accessing the submitted value like this:

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

During debugging you can always check what values you've got in this.Request.Form collection.

于 2013-02-12T10:20:28.183 回答