gpt4 book ai didi

asp.net-mvc - 没有 AJAX 的 ASP.NET MVC + jqGrid

转载 作者:行者123 更新时间:2023-12-01 03:05:55 24 4
gpt4 key购买 nike

我有一个 ASP.NET MVC 应用程序,它正在对产品数据库执行搜索。我想使用 TreeGrid 模块在 jqGrid 中显示结果。我真的不需要网格是 AJAX-y,因为数据是静态的,而且它足够小,可以一次发送到客户端。

第一个问题:如何设置 jqGrid,以便不再从 URL 中提取 JSON 数据,而只是在 JS 变量或其他内容中查找?

其次,让 ASP.NET MVC 将 JSON 数据放入 JavaScript 变量的最合适方法是什么?我的 Controller 中已经有了 List,只是想在 JSON 处理后以某种方式将其放入 JS 变量中。

或者我是否过于反对当前的情况而只是接受 jqGrid 似乎想要的 AJAX-y 工作方式?

谢谢

~贾斯汀

最佳答案

以下是如何使用 JavaScript 函数显示 jqGrid 树。

$(document).ready(function() {
TreeDemo.setupGrid($("#tree"));
});

TreeDemo = {
data: { A: ["A1", "A2"], B: ["B1", "B2"] },
setupGrid: function(grid) {
grid.jqGrid({
colNames: ['Name'],
colModel: [
{ name: 'Name', index: 'Name', width: "250em" }
],
datatype: TreeDemo.treeData,
loadui: "none",
sortname: 'Number',
treeGrid: true,
treeGridModel: "adjacency",
sortorder: "asc"
})
},
treeData: function(postdata) {
var items = postdata.nodeid ? TreeDemo.data[postdata.nodeid] : TreeDemo.data;
var i = 0;
var rows = new Array();
for (val in items) {
var isLeaf = postdata.nodeid != undefined;
rows[i] = {
Name: val,
Id: val,
level: postdata.nodeid ? 1 : 0,
parent: postdata.nodeid || null,
isLeaf: isLeaf ? "true" : "false",
expanded: "false"
}
i++;
}
$("#tree")[0].addJSONData({
Total: 1,
Page: 1,
Records: 2,
Rows: rows
});
}
};

请注意,执行此操作的方式有很多选项,我的示例只是其中之一。

我将 JSON 放入 JS var 的方法是:

  1. 编写一个 HTML Helper,向页面发出一个简短的脚本。
  2. 如果由于某种原因无法内联数据,请编写一个返回 JavaScriptResult 的操作来获取文件中的数据。

您可以使用 .NET JavaScript 序列化程序创建 JSON。查看 MVC 源代码中的 JsonResult.ExecuteResult 示例。

关于asp.net-mvc - 没有 AJAX 的 ASP.NET MVC + jqGrid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1901294/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com