2011-12-13 91 views
0

我添加了一個自定義按鈕到工具欄的jqgrid在我的asp mvc模型,但每次調用獲取數據是從視圖到控制器OnDataRequested),該按鈕被重新添加。這意味着如果五次調用獲取數據,則會在jqgrid中產生五個單獨的按鈕。我究竟做錯了什麼?jqgrid上的自定義按鈕不斷重新添加每個調用 - asp mvc

這是我的代碼。謝謝。

public virtual ActionResult Index() 
     { 
      var gridModel = new LibraryGridModel(); 
      SetupGrid(gridModel.LibraryGrid); 
      return View(gridModel); 
     } 

     public virtual JsonResult OnDataRequested() 
     { 
      var gridModel = new LibraryGridModel(); 
       return gridModel.LibraryGrid.DataBind(GetFullLibrary().AsQueryable()); 
     } 

    public void SetupGrid(JQGrid grid) 
     { 
      grid.DataUrl = Url.Action("OnDataRequested","Library"); 
      grid.MultiSelect = true; 
      grid.MultiSelectMode = MultiSelectMode.SelectOnCheckBoxClickOnly; 
     } 

格之格=新的{ToolBarSettings = {ShowRefreshButton = TRUE,ShowSearchButton = TRUE,ShowSearchToolBar = TRUE, ToolBarAlign = ToolBarAlign.Left,CustomButtons =新名單 { 新JQGridToolBarButton { 文本=「添加to Library「, ToolTip =」將選定的會話添加到我的地址「, ButtonIcon =」ui-icon-plusthick「, Position = ToolBarButtonPositi on.Last, 的OnClick = 「AddMultipleSessionsToLibrary」, } }},

我在我的LibraryGrid類中添加自定義按鈕。感謝您的幫助。

回答

0

首先,從GridModel中刪除自定義按鈕。然後,僅將它添加到索引動作調用中。
型號:

Grid grid = new{ ToolBarSettings = { ShowRefreshButton = true, ShowSearchButton = true, ShowSearchToolBar = true, ToolBarAlign = ToolBarAlign.Left }}, 

控制器:

public virtual ActionResult Index() 
      { 
       var gridModel = new LibraryGridModel(); 
       gridModel.ToolBarSettings.CustomButtons.Add(
        new JQGridToolBarButton 
        { 
         Text = "Add to Library", 
         ToolTip = "Add the selected session to mine", 
         ButtonIcon = "ui-icon-plusthick", 
         Position = ToolBarButtonPosition.Last, 
         OnClick = "AddMultipleSessionsToLibrary" 
        } 
       ); 
       SetupGrid(gridModel.LibraryGrid); 
       return View(gridModel); 
      } 
     public virtual JsonResult OnDataRequested() 
     { 
      var gridModel = new LibraryGridModel(); 
       return gridModel.LibraryGrid.DataBind(GetFullLibrary().AsQueryable()); 
     } 

public void SetupGrid(JQGrid grid) 
    { 
     grid.DataUrl = Url.Action("OnDataRequested","Library"); 
     grid.MultiSelect = true; 
     grid.MultiSelectMode = MultiSelectMode.SelectOnCheckBoxClickOnly; 
    } 
+0

的onDataRequested用於由電網以請求附加的數據中,當用戶進入在網格上一個新的頁面,例如,以使得呼叫有到那裏。我如何將模型的引用傳遞給OnDataRequested,正如我前面所說的,它是由jqgrid直接調用的。請解釋一些如果我錯過了這一點。謝謝。 – 2011-12-13 19:03:55

相關問題