2011-12-13 86 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

相关问题