#c# #asp.net #listbox #size
#c# #asp.net #список #размер
Вопрос:
У меня есть список на странице, которая привязана к linqdatasource. В событии ondatabound я пытаюсь сделать так, чтобы размер списка на экране соответствовал элементам, чтобы избежать необходимости прокрутки и избежать чрезмерного пробела.
Как я могу это сделать?
protected void ListBox1_DataBound(object sender, EventArgs e)
{
ListBox1.FitToItems();
}
protected void FitToItems() {
...?
}
Комментарии:
1. ListBox без применения какого-либо стиля CSS соответствует самому длинному текстовому представлению элемента. Таким образом, неявно нет горизонтальной панели.
Ответ №1:
Попробуйте:
Listbox.rows = Listbox.Items.count
Комментарии:
1. Это дает мне » Указанный аргумент был вне диапазона допустимых значений. Имя параметра: значение » ошибка, потому
Listbox.Items.count
что было 0, даже несмотря на то, что были элементы, возвращенные командой SqlCommand, запущенной при SelectedIndexChange ближайшего DDL.
Ответ №2:
Попробуйте установить атрибут size в сгенерированном теге. Что-то вроде…
$(document).ready(function() {
$('#<%=this.ListBox1.ClientID%>').attr('size', $('#<%=this.ListBox1.ClientID%> option').length);
});
с помощью jQuery.
Или установите его с помощью ListBox.Строки = список.Товары.Подсчитайте серверную часть (сам не пробовал, но я думаю, что это то, что он делает).