У меня есть страница WebForms с древовидным представлением слева и сетками справа. Когда пользователь щелкает узел древовидного представления, соответствующая сетка заполняется с помощью SqlDataSource, а затем отображается. Все это находится в одной панели UpdatePanel.
Вот моя установка:
<asp:GridView runat="server" ID='LocationsRowGrid' AutoGenerateColumns="false" DataSourceID="SqlDataSource_LocationRow">
<Columns>
<asp:TemplateField HeaderText="Location">
<ItemTemplate>
<asp:DropDownList runat="server" ID="NAME_LCTN" OnDataBound="dropdown_DataBound"
DataTextField="NAME_TO_LCTN" DataValueField="NAME_TO_LCTN" DataSourceID="SqlDataSource_LocationNames">
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Move Time (HR)">
<ItemTemplate>
<asp:TextBox runat="server" ID="STD_MOVE_TME_AMNT" Text='<%# Bind("STD_MOVE_TME_AMNT") %>'></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="LAST_UPDATED_BY" HeaderText="Updated By" Visible="true" />
<asp:BoundField DataField="LAST_REV_DT" HeaderText="Revision Date" Visible="true" />
</Columns>
</asp:GridView>
Есть и другие (более крупные) сетки, но это в основном шаблон. Самая большая сетка имеет около двенадцати столбцов, примерно шесть из которых являются шаблонными полями с текстовыми полями, а один из них — шаблонным полем с раскрывающимся списком. Выпадающий список привязан к другой таблице, которая содержит около 150 элементов. Сама сетка насчитывает около 100 записей.
Это медленно. Похоже, что проблема может быть связана с рендерингом HTML - сервер не слишком долго отвечает, но браузеры (Chrome и IE) почти падают, пытаясь отобразить результат. Мое первое (очевидное) предположение заключается в том, что рендеринг 100 html-выборов, каждый из которых содержит> 100 элементов, будет медленным, особенно если это делается сразу внутри тегов таблиц, таких как ASP.NET.
Кажется ли это разумным предположением о причине медлительности?
Для этого проекта мне (в настоящее время) не разрешено использовать jQuery (или, предположительно, любую другую библиотеку javascript), и я должен оправдать любой используемый мной javascript. По сути, другим разработчикам не нужно какое-либо реальное понимание javascript, чтобы иметь возможность поддерживать это приложение, когда я закончу с ним.
Учитывая эти ограничения, могу ли я что-нибудь сделать, чтобы уменьшить размер возвращаемого HTML и/или время рендеринга в браузере? Заранее спасибо.