将数据传递到jqgrid表中

时间:2009-11-23 02:12:17

标签: jquery asp.net-mvc jqgrid

在我的应用程序中,我将在首次加载页面时从服务器端获取数据表,并使用jqgrid进行渲染。

我似乎无法让它工作,当我请求下面示例的DummyView页面时,Web浏览器会弹出一条消息,要求我下载application/json文件,表明事情是错误的。这是我的Jquery代码:

 $(document).ready(function(){ 
      $("#list4").jqGrid({
        url:'../../ViewRecord/DummyView',
        datatype:'JSON',
        mtype: 'GET',
         colNames:['Id','Name','Description'],
 colModel:[
                         {name:'id',index:'id',width:55,resizable:true},
                         {name:'name',index:'name',width:90,resizable:true},
                        {name:'description',index:'description',width:120,resizable:true}],
        pager: jQuery('#pager'),
        rowNum:10,
        rowList:[5,10,20,50],
        sortname: 'Id',
        sortorder: "desc",
        viewrecords: true,
        imgpath:'/images',
        caption: 'My first grid'
      }); 
    });

这是我的ViewRecord/DummyView控制器方法:

public ActionResult DummyView()
{
    var page = new { page = 1 };

    var rows = new object[2];
    rows[0] = new { id = 222, cell = new[] { "222", "Blue", "This is blue" } };
    rows[1] = new { id = 2, cell = new[] { "2", "Red", "This is red" } };

    //var endarray = new[] {page, rows};


    var result = new JsonResult();
    result.Data = new { page = 1, records = 2, rows, total = 1 };

    return result;


}

知道如何让jqgrid与ASP.NET MVC一起使用吗?

2 个答案:

答案 0 :(得分:1)

我有一个完整的,有效的演示解决方案here。我还有一系列关于使用MVC和jqGrid一起开始here的帖子。演示解决方案包括LINQ extensions,因此您可以执行以下操作:

public JsonResult ListGridData(int page, int rows, string search, string sidx, string sord)
{
    var model = repository.SelectAll().ToJqGridData(page, rows, sidx + " " + sord, search,
      new[] { "Column1", "Column2", "Column3" })
    return Json(model);
}

请注意,对于MVC 2,您必须包含JsonRequestBehavior.AllowGet才能使用GET HTTP谓词。这是安全的,因为返回的根数据不是数组。

答案 1 :(得分:0)

如果您调用以获取数据,则可以使用jQuery;

$(document).ready( function() {
    //your code here
});

我知道这会强迫你做一个jQuery回发,但你没有提到这是一个问题。