Установите ширину и высоту ASP.NET (4.0) список для размещения элементов

#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.Строки = список.Товары.Подсчитайте серверную часть (сам не пробовал, но я думаю, что это то, что он делает).