我在javascript中的Colmodel看起来像这样
jQuery("#testGrid").jqGrid(
//Some code
colModel: [
{ name: 'field1',index: 'field1', width: 113, align: 'Center', formatter: selectCheckboxFormatter, sortable: false },
{ name: 'field2', index: 'field2', width: 113, align: 'Center' },
{ name: 'field3', index: 'field3', width: 120, align: 'left' }
];
)
和我的数据源javascript看起来如下。我在我的javascript中的某个时刻调用此函数来填充网格。
function PopulateDummyData() {
var mydata = [
{ field1: "Yes", field2: "1", field3: "54555464"},
{ field1: "No", field2: "2", field3: "54555464"},
];
}
但是我想从控制器代码中获取上述函数中的数据,这样控制器操作就会返回上述格式的JSON数据,我可以使用它来填充网格。并使用javascript中的以下代码片段,通过网格的URL操作调用控制器代码。
url:UrlAction('MyController','PopulateDummyData')。
但我不确定控制器代码应该如何?任何想法或评论??
答案 0 :(得分:2)
来自some blog:
public JsonResult GetStateList() {
var list = new List<ListItem>() {
new ListItem() { Value = "1", Text = "VA" },
new ListItem() { Value = "2", Text = "MD" },
new ListItem() { Value = "3", Text = "DC" }
};
return this.Json(list);
}
答案 1 :(得分:0)
查看有关如何从AJAX源加载的jqGrid文档。 这就是我从httphandler
获取数据的方式jQuery("#list").jqGrid({ url: 'example.ashx', //this url points to where the data comes from datatype: 'xml', //this is the data type, can be JSON etc etc mtype: 'GET', colNames: ['Name', 'Email', 'Archive'], colModel: [ { name: 'Name', index: 'Name', width: 200,editable:true}, { name: 'Email', index: 'Email', width: 250, editable: true }, { name: 'Archive', index: 'Archive', width: 80, align: 'center', editable: true, formatter: 'checkbox', edittype: "checkbox",value: "True:False" } ], pager: jQuery('#pager'), rowNum: 5, rowList: [5,10,15,20], sortname: 'id', sortorder: "desc", viewrecords: true, imgpath: '/jqGrid-3.5.alfa/themes/lightness/images', caption: 'My first grid' }).navGrid("#pager", { edit: false, add: false, del: false,refresh:false,search:false }); });
然后我的httphandler代码看起来像
public String GenerateGrid(HttpContext context,List lstData) { context.Response.ContentType =“text / xml; charset = utf-8”; string xml =“”+ page +“+ totalpages +”“+”“+ count +”“;
List<customObject> temp = lstData.Skip((page - 1) * limit).Take(limit).ToList();
foreach (var tempOBJ in temp)
{
xml += "<row id='" + tempOBJ.id+ "'>";
xml += "<cell>" + tempOBJ.name+ "</cell>";
xml += "<cell>" + tempOBJ.lastname + "</cell>";
xml += "<cell>" + tempOBJ.email + "</cell>";
xml += "</row>";
}
xml += "</rows>";
return xml;
}