hypofely Ответов: 1

Listbox onindexchanged событие срабатывает, но свойство selecteditem имеет значение null ASP.NET


Когда что-то выбрано в ListBox1, событие selectedindexchanged срабатывает, однако listbox1.selecteditem/index/value равно null. Как я могу получить SelectedItem ?

   protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
   {
       var row = ListBox1.SelectedItem.Text;
       var date = DateTime.ParseExact(row,"yyyy-MMMM", CultureInfo.InvariantCulture);
       ChangeMonthViewOnGridView1(date.Year, date.Month);
   }


<asp:ListBox ID="ListBox1" runat="server"
OnSelectedIndexChanged="ListBox1_SelectedIndexChanged" Width="258px"
AutoPostBack="True" ></asp:ListBox>


Что я уже пробовал:

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

Karthik_Mahalingam

как вы связываете данные?
покажите код.

hypofely

IEnumerable & lt;datetime> months = monthsBetween(startingMonth, currentMonth).Обратный();

Список<строка> У formattedMonths = новый список<строка&ГТ;();

foreach (var месяц в месяцах)
{
formattedMonths.Добавить (месяц.ToString ("гггг-мммм"));
}
ListBox1. DataSource = formattedMonths;
Список listbox1.Привязку();

Karthik_Mahalingam

протестировали ur-код, он отлично работает.. вы что-то упускаете и не говорите.

Maciej Los

Заменять var row = ListBox1.SelectedItem.Text; с var row = ListBox1.SelectedItem.Value;

hypofely

список listbox1.некоторые....... все они имеют значение null, когда я проверить его с помощью отладчика vs.

1 Ответов

Рейтинг:
2

Asmita Bhurke

замените свой код

<asp:ListBox ID="ListBox1" runat="server"
OnSelectedIndexChanged="ListBox1_SelectedIndexChanged" Width="258px"
AutoPostBack="True" ></asp:ListBox>


с

<asp:ListBox ID="ListBox1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ListBox1_SelectedIndexChanged">
                <asp:ListItem>2017-January</asp:ListItem>
                <asp:ListItem>2017-February</asp:ListItem>
                </asp:ListBox>



и попробуй. это работает для вашего кода позади