我有一個Web窗體頁面,左邊是樹形視圖,右邊是網格。當用戶點擊樹形視圖節點時,相應的網格將使用SqlDataSource填充,然後顯示。整個事情在一個UpdatePanel中。減少大型表格的ASP.NET WebForms頁面的加載時間
這裏是我的設置:
<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和/或渲染時間的大小?提前致謝。
您的gridview需要在UpdatePanel中嗎?去看看更新面板實際上是如何工作的,以及從服務器發佈和接收的內容...... – Emyr