2011-07-14 119 views
2

我們有一個很大量的信息(100或行和列),我們需要提高性能的網格視圖。asp.net webforms ajax更新gridview

目前,爲了解決一些性能問題,我們使gridview沒有edittemplate,而是雙擊單元格會彈出可用選項的下拉菜單,並使用webmethods檢索並使用jquery動態填充選項在下拉菜單中,我們將html中的值設置爲所選選項的值。

我們遇到問題,隨後發送這些更改回服務器,我們有一個按鈕導致回發到服務器,但我們通過jquery功能所做的更改不可用,當我們循環gridview項目他們仍然有與以前相同的值。

我們是否在填充/更新方面採取了錯誤的方式?我們如何實現這一目標?

題外話:我知道我們也許應該限制對電網的界限,但目前這不是一個選項

+0

是否實施了分頁?這是整個性能問題的一個問題。 –

+0

目前沒有分頁,不幸的是,它的觀點是,用戶真的需要一次查看所有數據,以便正確理解發生了什麼事情 –

回答

1

當你本身使用GridView時,也就是讓它處理編輯模板時,ViewState會進入場景並工作得很好。但是當你手動操作網格時,沒有變化反映在相關的地方,因此在服務器上具有相同的值。你說你通過jQuery在dblclick上獲取值。你爲什麼不更新模糊行?我的意思是,當用戶轉到下一行時,只需通過Ajax更新當前記錄。這是最安全的方法。 曾經有過與Telerik的RadTree相同的經歷。你應該:

  1. 使用爲您提供控制客戶端API,或
  2. 用做原生的方式不亂你的控制工作,同時希望回發的工作,或
  3. 使用控件只是用於顯示目的,但對於操作,請使用AJAX。
0

我認爲這個問題是在後背上它從視圖狀態重新加載數據。我們使用webmethod將內容加載到jquery對話框中,並通過它進行更新。成功保存後,更新網格以反映更改。

0

我發現這個守則「框架」 http://www.codeproject.com/KB/ajax/AJAXWasHere-Part1.aspx,它會修改/重新創建的ViewState並與AJAX請求提交,所以你仍然可以使用ASP.NET的事件模型。這是在MS發佈自己的.NET 2.0之前的AJAX工作。

我將它與mootools JS庫一起使用,因此您不應該在使用JQuery時遇到任何問題,但是您將無法使用JQuery AJAX方法,除非您將「CallBackObject」重新編寫爲Jquery插入。

問候

2

如果你想提高性能,你不能使用。

  1. 的UpdatePanel
  2. 的ScriptManager
  3. 的GridView

我猜你正在使用所有這些。

您可能Use jQuery to directly call ASP.NET AJAX page methods,根本不使用ScriptManager。將其與任何jQuery Grid推薦(herehere)的功能相結合。我對DataTables感到滿意,但我越來越多地聽到關於SlickGrid。你應該試試看。

既然所有東西都是客戶端,那麼在回發時就不會有價值迷失的問題。

此外,我會強烈建議you should not use UpdatePanel at all。但那就是我。