2013-07-01 60 views
1

我有樹形視圖級別3的頁面上有超過200個節點正在顯示與複選框。該控件顯示有多少條記錄可用以及選擇了哪些記錄。用戶可以取消選中現有的選擇並根據需求檢查更多節點。所以我必須加載整個樹結構。
頁面加載時間超過40秒。此選定節點將回發到數據庫中存儲。關於頁面上的其他操作,還有許多其他回發事件。節點的按需加載在這裏不起作用。我試圖通過將一個不可見的按鈕放在UpdatePanel中來模擬頁面的異步加載。當頁面加載完成時,我用JavaScript觸發。但是仍然需要大量時間來呈現控件。Asp.NET頁面加載速度非常慢,樹視圖控制

有沒有更好的方法來處理這個問題?任何建議都是值得歡迎的。

+0

使用一個'秒錶'實例來計算每個操作需要多長時間。我還建議使用SQL Profiler工具來查看你的數據庫操作正在做什麼。理想情況下,頁面應該在100毫秒內(最好在50毫秒以下)生成,所以40秒錶示出現了錯誤。 – Dai

+0

爲了渲染樹視圖asp不會佔用這麼多時間。你在每個循環中調用一個存儲過程或sqlQuery,同時遍歷treeview。訪問數據庫將始終創建開銷。發佈代碼以填充樹視圖 –

+0

整個樹結構來自服務,在單個請求中花費少於一秒的時間。我通過循環來填充。 – Nps

回答

7

我設置了一個屬性EnableClientScript =「false」,treeview開始加載非常快。唯一的問題是在展開或摺疊樹時回傳。所以我將TreeView放置在更新面板中。現在它非常快。

+0

謝謝。那爲我做了詭計! – dotNET

+0

這一行代碼是值得黃金重量的!性能差異是驚人的。 – Walter

1

由.net爲treeview控件生成的客戶端腳本是導致性能較差的原因。 設置EnableClientScript = false將做詭計