Проблема со списком радиокнопок ASP.Net - PullRequest
1 голос
/ 27 февраля 2010

У меня возникли некоторые проблемы со списком переключателей в ASP.net, по какой-то причине он не позволяет мне выбирать второй элемент в списке переключателей (индекс 1), когда я выбираю этот элемент, выбранный элемент возвращается к 0 (первый пункт). когда я отлаживаю код, чтобы увидеть, что это за выбранный элемент, он почему-то показывает 0, хотя я нажимаю 2-й элемент (индекс должен быть 1)

Кто-нибудь может подумать о том, что я могу здесь делать неправильно?

на стороне веб-формы у меня есть

                        <asp:RadioButtonList ID="RadioButtonList1" runat="server" OnSelectedIndexChanged="RadioButtonList1_SelectedIndexChanged" AutoPostBack="true">
                        </asp:RadioButtonList>

затем на стороне сценария список переключателей заполняется путем просмотра массива, например, так:

    for (i = 0; i < answersJArray[i].Length; i++)
    {
        RadioButtonList1.Items.Add(answersJArray[i].ToString());
    }

Ответы [ 3 ]

2 голосов
/ 27 февраля 2010

Было бы хорошо, если бы вы могли немного рассказать нам о своем коде или описать процесс и события более подробно. Я бы сказал, что вы должны связать данные выбора радиобуттониста или инициализировать его выбором по некоторым критериям при загрузке страницы.

Если любой из этих параметров верен, вам нужно вставить условное выражение! IsPostBack, чтобы убедиться, что вы не переопределяете какие-либо потенциальные события, неправильно привязав элемент управления или переназначив его выбранный параметр программным путем.

1 голос
/ 27 февраля 2010

Да, вы повторно привязываете данные перед проверкой (таким образом, выбор изменяется).

В какое время в жизненном цикле страницы вы проверяете значение? А также, когда вы выполняете привязку данных?

Лучше всего, если вы можете связать в разметке (с помощью какого-либо источника данных я обычно использую ObjectDataSource, но все, что в порядке).

Если вы этого не сделаете, вам нужно запретить привязку данных, когда страница находится в режиме «PostBack», в противном случае будет слишком поздно проверять значение.

0 голосов
/ 31 июля 2014

У меня была такая же проблема. Я обнаружил, что это потому, что значение listItem (то же значение двух различных listItems).
listItem состоит из text и value:

  • text используется для отображения на странице.
  • value используется для другие вещи.

Если вы добавите два элемента ListItems с одинаковым значением, вы получите следующее поведение: при щелчке элемента выбирается первый.

...