2009-11-17 143 views
0

我正在處理一個很長的動態表單(大約100個字段),並且正在爲每個字段使用工具包項目,例如CalendarBehaviors,HovermenuBehavior等。Ajax工具包客戶端呈現

我從來沒有同時使用過那麼多的工具箱項目,並且在渲染過程中看到了巨大的性能。工具包控件的每個實例都將通過其自己的<SCRIPT></SCRIPT>標籤發送給客戶端。換句話說,他有以下200個實例:

<SCRIPT type="text/javascript"> 
Sys.Application.add_init(function() { $create(AjaxControlToolkit.HoverMenuBehavior, {"OffsetX":20,"PopDelay":50,"dynamicServicePath":"/default.aspx","id":"hmePopupHelpPolicyNumber","popupElement":$get("lblHelpPolicyNumber")}, null, null, $get("imgHelpPolicyNumber"));}); 
</SCRIPT> 
<SCRIPT type="text/javascript"> 
...snip 
</SCRIPT> 

是否有任何方法可以控制它,並讓所有控件在單個腳本塊中創建?

另外,有沒有人知道一個好的,詳細的文章,將描述如何IE 7分析和呈現HTML和JavaScript?

我知道你們大多數人會推薦使用JQuery。不幸的是,這不是這個項目的一個選項。

在此先感謝和快樂編碼。

回答

0

按照@Achilles的回答,我會將表單分成多個頁面。您也可以嘗試使用多個選項卡的一個頁面。

更新: 別的可能幫助你的是ToolkitScriptManager。它將所有外部工具包腳本合併爲一個外部腳本。我認爲它也將所有內聯工具包腳本合併爲一個塊。

+0

謝謝阿喀琉斯和JRummel。我使用了一些想法(製表符,MVC),但是數據輸入人員會使用表單,他們將重複填寫表單的定製版本(下拉列表更改事件會爲其他辦公室創建表單) 零件問題是我需要把這個交給一個更加綠色的開發人員來維護。我試圖堅持他們所知道的,即Ajax工具包和Webforms,並試圖寫入最少量的JS。我的問題涉及到是否有任何方法來驗證工具包和其他.NET控件(驗證程序)如何發出腳本 – Frank 2009-11-17 17:18:57

+0

請查看我對編輯的響應是否有所不同。 – Achilles 2009-11-17 18:33:06

+0

謝謝阿喀琉斯。用戶可以在字段之間進行選擇並在沒有鼠標的情況下輸入(我將日曆控件附加到文本框等)。表單加載後,輸入速度非常快。問題是每個領域需要彈出幫助,驗證等。我研究了嚮導類型控制(3個步驟)或選項卡的可用性,但2個步驟的3個步驟與單個頁面的6個步驟...並不多區別。我確實有一個MVC原型,其性能很好,但MVC對我的團隊領導來說太過分了。 所以我想我堅持這種模式。我只是想盡一切可能來優化它。 – Frank 2009-11-17 19:47:51

1

我會說重新考慮你的網頁設計。您網頁上的很多項目無法提供良好的用戶體驗。而不是編寫一個非常遙遠的解決方案,重新考慮你的設計,最終也可能會讓你的用戶受益。

編輯: 您的問題是許多人認爲使用WebForms的主要缺點的核心。對於服務器如何呈現控件併發布其HTML,幾乎沒有任何控制。如果沒有您想要避免的更「先進」的方法,除了將表格分成更小的片段之外,我很難提出任何建議。如果是數據輸入表單,用戶輸入日期字段可能會更快,而不是通過鼠標點擊填充表單。