2008-12-08 2 views
0

Есть ли какие-либо преимущества в производительности для меня, не используя gridview в asp.net для простых таблиц, запрашивающих из хранимой процедуры, и вместо этого писать сам html в код сервера. Я уверен, что мой код, безусловно, будет более кратким в выпуске.asp.net gridview vs writing innerhtml

ответ

2

Я собираюсь предложить альтернативное решение. Если вам не нужны какие-либо функции GridView, почему бы не использовать ретранслятор.

Ретранслятор поддерживает его простоту реализации, но также позволяет вам полностью контролировать сгенерированный источник. Без вопроса о конкатентации строк.

Я нашел незначительные улучшения производительности с повторителями по GridViews.

0

Нет, преимущества использования GridView отсутствуют. В общем, GridView будет немного уменьшать производительность из-за того, что элементы записываются в ViewState, и создается дополнительный HTML. Преимущества, которые вы получаете от GridView, включают в себя командные события и аргументы, которые можно легко потреблять или создавать, DataKey «сумка свойств», которая позволяет отслеживать критические поля в большом результирующем наборе, а также многое другое. Я добавлю это предостережение, что использовал GridViews даже при очень простом возврате результатов и не видел серьезных проблем с производительностью.

Если вы просто делаете какой-то вывод из запроса таблицы, и не беспокоитесь о том, чтобы слишком много взаимодействовать с данными из самих результатов, «перелистывание собственных» обеспечило бы отличное решение.

0

Ну, конечно, это зависит от вашей реализации. Вы могли бы почти наверняка построить что-то, что работает быстрее, чем фондовый gridview.

Проблема в том, откуда вы знаете? Система по умолчанию для конкатенации строк в .Net по своей природе очень медленная, поэтому было бы легко случайно создать нечто гораздо более медленное, чем gridview. Разумеется, вы можете проверить все, но инвестиции в время разработки, скорее всего, превысят прирост производительности сервера.

0

Существует дополнительная возможность, которая существует между использованием GridView и использованием StringBuilder для генерации HTML. Я говорю об использовании класса ASP Table. Я видел впечатляющие выгоды от использования их по сравнению со стандартным GridView, когда все, что я делаю, это выплевывание данных. В качестве дополнительного бонуса я могу добавить кнопку (или ссылку) к моему выводу и связать ее с обработчиком событий и по-прежнему получить функциональность GridView в этом отношении.

Вы бы использовать его таким образом:

Dim tab As New Table 
For Each row In DataTable.Rows 
    Dim tabRow as New TableRow 
    For Each col In row.Columns 
    dim tabCol as New TableColumn 
    tabCol .Text = row(col) 
    tabRow.Controls.Add(tabCol) 
    Next 
    tab.Rows.Add(tabRow) 
Next 
Page.Controls.Add(tab)