Выбранный элемент списка радиокнопок всегда равен нулю

Проект викторины, вопрос имеет радиокнопку с 2 элементами (T / F) или 4 элементами (a, b, c, d), количество вопросов варьируется. Панель используется для отображения только одного вопроса за раз (показать/скрыть). после ответа на все вопросы пользователь нажимает кнопку отправки, и все ответы должны быть сохранены в базе данных. В коде для selecteditem всегда есть значение null, а значение всегда является пустой строкой.

<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. Я вижу их правильные идентификаторы и элементы списка, но ничего не выбрано.

 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);  //
                }
            }

person user1553087    schedule 07.09.2012    source источник


Ответы (2)


Кажется, что вы заполняете RadioButtonList при загрузке страницы. Если это так, убедитесь, что вы окружили свое заполнение RadioButtonList блоком If/Then/Postback: если не Page.IsPostBack, то ' заполните конец RBL, если

eg:

        if (!IsPostBack)
        {
            loadradiobuttonlist();
        }
person pooja    schedule 03.01.2014

Попробуйте получить доступ к отправленному значению следующим образом:

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

Во время отладки вы всегда можете проверить, какие значения у вас есть в коллекции this.Request.Form.

person Kniganapolke    schedule 12.02.2013