2014-10-20 63 views
0

在ASP.NET 4.5 C#web表單應用程序中,我想避免回發一個按鈕單擊事件,該事件從數據庫中提取數據並綁定gridview。 GridView將在每一行上都有一個編輯按鈕。我希望避免在單擊編輯按鈕時回發。在每行上也會有一個按鈕,點擊時會顯示模式彈出窗口,並且此彈出窗口將顯示按鈕。當模式彈出窗口關閉時,該gridview行中的數據將被更新。避免與ASP.NET GridView相關的回發

我一直在使用updatepanels。他們確實避免整頁刷新,但不要減少視圖狀態。 gridview將返回很多行。因此,當我點擊gridview中的任何按鈕時,即使gridview進入編輯模式或顯示彈出窗口也需要一段時間。我將如何減少或消除這個時間滯後?謝謝。

+1

你的問題對於SO來說不是一個好的格式。你試圖一次問得太多,而且你還要求我們推薦軟件。不允許向我們推薦軟件的問題。至於你的主要問題,我建議不要爲此使用GridView或UpdatePanels。相反,禁用ViewState,然後使用中繼器創建HTML表格。在桌子內部使用運行本地JavaScript的按鈕,如果需要與服務器通信,則使用AJAX。 – mason 2014-10-20 14:05:16

+0

謝謝梅森,我會檢查出來。如果有人爲了同樣的目的而使用了軟件並且喜歡它,我想知道。是的,這不是主要問題。 – engg 2014-10-20 14:50:07

+1

是的,許多人在對生成的HTML使用更精細的控制時使用中繼器技術。 [大多數人](http://stackoverflow.com/questions/113479/when-to-enable-disable-viewstate)(和微軟)現在建議禁用ViewState,並且只有在需要時才選擇性地啓用ViewState。 – mason 2014-10-20 14:52:02

回答

2

一個comment-

SPA(單頁的應用程序,不張貼或發佈背面)和混合的WebForms很差。

  1. 您將無法利用第三方庫的大部分功能,這對我來說是WebForms的主要優勢 - 能夠立即獲得如此多的功能。
  2. 您可以通過在每個回發中拋出異常來禁用回發。 (IsPostBack測試)
  3. MS-Ajax是craptastic。我試圖使用它,我後悔了。許多第三方WebForm庫都與它相關聯。即使MS已經認識到MS-Ajax是一種失敗的產品,並且不再推動它。
  4. 如果您選擇一個SPA庫,請選擇一個,例如Angular或JQuery或其他。當你將兩者都放在頁面上時,他們會爭取控制DOM。
  5. WebForms甚至不是一個好的模板語言。當您需要處理客戶端ID時,良好的模板語言確實會造成不間斷的痛苦。在WebForms中,更容易在單個頁面上生成所有模板並顯示和隱藏這些部分,而不是讓部分動態生成,這很有意義,因爲WebForms是一種服務器端模板語言 - 這可以創建一個巨大的頁面。您可以使用MS-Ajax進行排序,但是如果通過模板客戶端可以跳過該步驟,則可以調回服務器以獲取更多模板標記。
+0

感謝馬修馬丁。現在爲了避開webforms並切換到MVC或其他東西已經太晚了。 – engg 2014-10-20 17:29:06

+1

@engg所有這些都是很好的建議。不,現在切換到MVC還不算太晚(或者至少放棄MS-AJAX來支持jQuery UI或類似)。如果你堅持不好的技術,從長遠來看,這會讓你付出更多的代價。你能使用Web Forms有效嗎?當然。但我發現更有效的技術傾向於使用MVC/[網頁](http://www.asp.net/web-pages)反正(例如:Repeater而不是GridView,你可能會以及使用Razor'foreach'循環)。 – mason 2014-10-20 18:08:53

+0

我正在調查MVC。學習曲線如何從webforms切換到MVC? – engg 2014-10-21 13:46:45