asp.net-mvc – 如何将我的视图模型绑定到jqGrid?
使用MVC2和EF框架.到目前为止,我发现的大多数参考/博客文章都涉及将单个表及其数据(有时是分层的)绑定到具有编辑功能的jqGrid.我不需要这个.我甚至不需要编辑数据 – 只需显示.我需要显示和分页数据.排序是一个加号,我猜想搜索奖金.
jqGrid的文档显示了绑定的数据源,如下所示: return gridModel.OrdersGrid.DataBind(northWindModel.Orders); 但是,我只有我的实体上下文而没有对视图模型的引用.我可以在这里创建一个实体集吗?对此不太熟悉. 我的所有视图模型都包含来自几个不同表的数据.如何将视图模型属性绑定到jqGrid?我正在玩Trirand的jqGrid for MVC 30天试用版.同样,我只需要显示和分页数据,但我不确定如何将视图模型连接到jqGrid数据源. 编辑 public ActionResult test() { var gridModel = new testmodel(); var viewModel = gridModel.testgrid; SetupTestGrid(viewModel); return View(gridModel); } private void SetupTestGrid(JQGrid viewModel) { viewModel.ID = "TestGrid"; viewModel.DataUrl = Url.Action("SearchTestGridDataRequested"); viewModel.ToolBarSettings.ShowEditButton = false; viewModel.ToolBarSettings.ShowAddButton = false; viewModel.ToolBarSettings.ShowDeleteButton = false; } public JsonResult SearchTestGridDataRequested(string sidx,string sord,int page,int rows) { var gridModel = new testmodel(sidx,sord,page,rows); SetupTestGrid(gridModel.testgrid); return Json(gridModel.datasource); } 在testmodel和testmodel(参数)中,我创建了一个包含Phil Haack’s参数的匿名类型(名为datasource);总计,页面,记录和行.在SearchTestGridDataRequested的最后一个语句中,此属性是JSON’ified. 解决方法
我真的不知道jqGrid的商业版本,但产品在内部使用Open Source jqGrid,所以我可以解释它应该如何与ASP.NET MVC一起工作.
通常,在MVC中使用jqGrid,您可以拥有一个包含两个元素的页面(视图)< table>和< div>用于寻呼机.两者(< table>和< div>)都必须具有和id属性.不需要其他复杂的View绑定到Model. 现在您可以在页面的页眉中加载所需的所有JavaScripts:jQuery,jqGrid和您页面特定的JavaScript,它们定义了您要显示的jqGrid,例如列模型和不同的jqGrid参数.将网格绑定到数据所需的最重要参数是url参数.如果您在Home控制器中定义了动作GetData,那么url可以是“Home / GetData”或“<%= Url.Content(”?/ Home / GetData“)%>‘.这足以具有“数据绑定”.不需要使用模型数据. GetData操作可以定义如下: JsonResult GetData(string sidx,int rows) 如果您只想支持数据排序和分页,但不需要任何搜索(过滤)支持. 如果是搜索支持,则需要添加其他参数.如果要使用带有stringResult:true参数的Advanced Searching或Toolbar Searching,则应添加一个额外的参数字符串过滤器: JsonResult GetData (string sidx,int rows,string filter) 如果在您的网格中实现Single Field Searching,它应该是 JsonResult GetData (string sidx,string searchField,string searchString,string searchOper) 你也可以做一个普遍的行动: JsonResult GetData (string sidx,string _search string searchField,string searchOper,string filter) 因此,在所有情况下,您必须执行几乎相同的操作,但您将以其他一些形式接收其他参数. 现在,您应该决定使用哪种形式从控制器操作为jqGrid提供数据. jqGrid非常灵活,您可以以标准格式获取数据 { "total": "xxx",// the total number of pages "page": "yyy",// the current page number of the data returned "records": "zzz",// the total number of records "rows" : [ {"id" :"1","cell" :["cell11","cell12",...,"cell1n"]},{"id" :"2","cell":["cell21","cell22","cell2n"]},... ] } 或者以另一种(更易读,但更长)的格式.在最后一种情况下,您必须定义一个小参数jsonReader,它描述了应该如何读取数据(参见documentation). 如果您查看一些旧的答案,如this,this,this或this,您将找到足够的完整工作MVC项目的代码片段,您可以根据您的建议进行修改.列表中的The first reference应该给出关于如何从EF源或任何其他IQueryable< T>准备数据的主要问题的答案.获取jqGrid需要的数据. 在另一个我的old answer中,我描述了一般架构如何在MVC环境中使用jqGrid更详细,但是对于已经测试过不同实现方式的人来说. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ASP.NET -- WebForm -- 页面生命周期
- asp.net-mvc-4 – 通过ADAL JavaScript Ajax和KnockoutJs的
- asp.net – Jquery Ajax,不在Internet Explorer中工作
- asp.net – 拥有专用应用程序池,将Web应用程序保留在一个默
- asp.net – 在Visual Studio编辑器中配置<%%>块的格式
- asp.net-mvc-3 – 如何模拟httpcontext使单元测试不为空?
- asp.net-mvc – JsonSerializer – 使用’N2’格式序列化小
- asp.net-mvc – 当您的视图模型没有域模型那么多字段时,如何
- asp.net – IIS URL重写模块url为小写
- asp.net-core – uri查询参数中的asp.net核心JWT?
- asp.net-mvc – .NET MVC是否有强类型的Redirect
- asp.net-mvc-3 – ASP.Net MVC 3不显眼的验证不适
- asp.net – 在PostBack期间Recaptcha消失
- asp.net – URL重写规则在Visual Studio Develop
- asp.net-mvc – 我们可以从现有数据库的选定表中
- 如何在ASP.Net Web API中为特定控制器启用Window
- asp.net – 不能在aspx页面的部分使用Response.W
- asp.net-mvc – 如何从ASP.NET MVC 3中的授权过滤
- asp.net – 我必须为每个ASP按钮添加CausesValid
- 如何在asp.net上模拟同时的web请求?