Как сбросить ListBox.Вернуть свойству Rows значение по умолчанию (без жесткого кодирования значения по умолчанию)

#asp.net

#asp.net

Вопрос:

У меня есть ASP.NET ListBox на странице, и по мере возникновения обратной отправки я изменяю элементы в списке. Если в списке >= 10 элементов, я устанавливаю свойство Rows = 10. Но если элементов меньше 10, я бы хотел вернуть строкам значение по умолчанию для строк.

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

Есть ли способ сделать это?

Комментарии:

1. Что находится ListBox в asp.net ? Вы уверены?

2. @Waqas: msdn.microsoft.com/en-us/library /…

Ответ №1:

Вы можете получить значение по умолчанию во время Init фазы страницы. Из документации:

На этом этапе жизненного цикла страницы объявленные серверные элементы управления на странице инициализируются в состояние по умолчанию; однако состояние просмотра каждого элемента управления еще не заполнено.

Итак, вы можете сделать что-то вроде:

 private int _defaultRows;

protected void Page_Init(object sender, EventArgs e)
{
    _defaultRows = yourListBox.Rows;
}

protected void Page_PreRender(object sender, EventArgs e)
{
    if (yourListBox.Items.Count >= 10) {
        yourListBox.Rows = 10;
    } else {
        yourListBox.Rows = _defaultRows;
    }
}