我一直在尝试在我的Asp.Net MVC应用程序中实现jQuery的网格功能。我正在测试XP上的所有内容,所以我启用了mvc扩展(因为我使用的是IIS 5)
我遇到了两个问题。
jQuery(document).ready(function() { alert('loaded'); alert('starting jquery'); jQuery("#list").jqGrid ({ url: '/Bar.mvc/GridData/', datatype: 'json', mtype: 'GET', colNames: ['Id', 'Votes', 'Title'], colModel: [ { name: 'Id', index: 'Id', width: 40, align: 'left' }, { name: 'Votes', index: 'Votes', width: 40, align: 'left' }, { name: 'Title', index: 'Title', width: 400, align: 'left'}], pager: jQuery('#pager'), rowNum: 10, rowList: [5, 10, 20, 50], sortname: 'Id', sortorder: "desc", viewrecords: true, imgpath: '/scripts/themes/coffee/images', caption: 'My first grid' }); alert('jQuery done'); });
我的前两个警报开火了。但是一旦进入jGrid函数,第3个警报就不会触发。我认为它可能与URL有关,因为我在控制器中的函数上设置了一个断点,它永远不会被击中。
我的第二个问题是当我将/Bar.mvc/GridData放入地址栏时,为了查看它是否能找到该功能,它会提示我用Firefox的“保存文件”下载一个json类型的文件... “对话。
这是我在控制器中的功能:
public ActionResult GridData(string sidx, string sord, int? page, int? rows)
{
int totalPages = 1; // we'll implement later
int? pageSize = rows;
int totalRecords = 3; // implement later
var jsonData = new
{
total = totalPages,
page = page,
records = totalRecords,
rows = new[]{
new {id = 1, cell = new[] {"1", "-7", "Is this a good question?"}},
new {id = 2, cell = new[] {"2", "15", "Is this a blatant ripoff?"}},
new {id = 3, cell = new[] {"3", "23", "Why is the sky blue?"}}
}
};
return Json(jsonData);
}
答案 0 :(得分:0)
如果第三个警报未激活,则对jqGrid的调用即将消失。使用Firebug或IE 8脚本调试程序查看错误。 “第二个问题”是正确的行为。别担心。当网格调用您的操作时,它将是正确的。
答案 1 :(得分:0)
不确定这是否是实际答案。但我向后退了几步,用jQuery尝试了一些非常简单的东西。
我做了一个简单的.post。但对于URL,我使用了
<%Html.Action("myControllerFunction")%>
这就是让它发挥作用所需要的一切。因此,当我再次获得机会时,我会在网格上测试它,但我猜它至少是相关的。
但我确实使用了萤火虫来帮助我达到这一点。