2013-11-27 2 views
1

У меня есть ListView со 100 строками.Как справиться с большим списком ASP.NET

Каждая строка представляет клиента и имеет несколько кнопок.

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

Давайте предположим, что у нас есть около 10 кнопок в каждом ряду. Каждая кнопка со своей панелью. Теперь, пожалуйста, сообщите мне, как я могу справиться с этой ситуацией.

  1. Каждый ряд со своими панелями.

    protected void lst_ItemCommand(object sender, ListViewCommandEventArgs e) 
    { 
        switch (e.CommandName) 
        { 
         case "commandname": 
         { 
          Panel pnl_= (Panel)lst_adverts.Items[e.Item.DataItemIndex].FindControl("idpanel"); 
          pnl_= false; 
          break; 
         }  
        } 
    } 
    
  2. Одна единственная панель для всех строк

    protected void lst_ItemCommand(object sender, ListViewCommandEventArgs e) 
    { 
        switch (e.CommandName) 
        { 
         case "commandname": 
         { 
          pnl_.Visible = false; 
          break; 
         } 
        } 
    } 
    

Я спрашиваю, потому что я пытаюсь уменьшить размер страницы.

Каков наилучший подход?

ответ

1

Очевидно, что наличие одной панели против 100 панелей в вашей разметке страницы будет меньшей.

До тех пор, пока вы не хотите иметь возможность показывать более одной панели за раз, что, на мой взгляд, так и есть, а затем выберите вариант № 2 - одну панель для всех строк.

Возможно, вам придется исследовать использование модального всплывающего окна вместо панели, например jQueryUI Dialog или ASP.NET AJAX ModalPopupExtender.

+0

спасибо за ваш совет! Я определенно буду изучать модальное всплывающее окно. – POIR

+0

Извините, но я должен задать тупой вопрос об этом 100 панелях. Все эти панели имеют Visible = 'false'. Только при нажатии кнопки одна панель будет иметь Visible = 'true'. Таким образом, элемент с атрибутом Visible = 'false' может влиять на размер страницы? – POIR

+0

@ Otix - во время выполнения, да, если вы сделаете 99 панелей невидимыми и только одно видно, то размер отображаемого HTML не будет больше, чем использование одной панели в модальном всплывающем окне. Но с точки зрения разработки ваша дизайнерская разметка будет значительно больше из-за всех этих панелей, которые нужно будет скрывать до того, как HTML будет передан в браузер. Поэтому, если размер вывода в этом случае имеет значение, то 100 панелей с 99 из них скрыты во время выполнения, тогда это не будет разницей. Но с точки зрения технического обслуживания будет сложнее поддерживать 100 панелей против 1. –