我通过requireJS将数据加载到jqGrid中,数据加载,格式化和显示,但之后没有任何工作,排序,行选择,分页等。如果我在没有requireJS的情况下启动jqGrid,网格工作正常。
RequireJS config snippet:
"jqGrid": "jqGrid/jquery.jqGrid.min",
"grid-locale": "jqGrid/i18n/grid.locale-en", ...
shim: {
"jqGrid": ["grid-locale", "jquery-ui"]
}
JavaScript代码段:
define(["jquery", "httpUtils", "jqGrid"],
function ($, httpUtils, jqGrid) {
window.jqGrid = jqGrid;
var myViewModel = function () {
var data = httpUtils.httpSyncGet('xxx');
var grid = $('#index').jqGrid({
colNames: ['ClientIdentifier'],
colModel: [
{ name: 'ClientIdentifier', width: "150pt" }
],
datastr: data,
datatype: 'jsonstring',
rowNum: 25,
rownumbers: true,
height: 500,
viewrecords: true,
width: 1100,
shrinkToFit: false
});
};
return myViewModel;
});
很抱歉,如果代码不是很全面,我不得不从大型项目中取出代码段。我只是好奇是什么原因导致jqGrid完成加载,但不知何故“卸载”#39;所有这些功能。控制台中也没有javascript错误。
答案 0 :(得分:0)
我认为你错过了一些模块和依赖项。这对我有用(并且也从一个更大的项目中删除):
require.config({
baseUrl: "Scripts/TypeScript",
paths: {
jquerygrid: "../jquery.jqGrid.src",
jqueryui: "../jquery-ui-1.11.4",
jqgridlocale: "../i18n/grid.locale-en",
jqgrid: "../jquery.jqGrid.min"
},
shim: {
jqueryui: {
deps: ["jquery"]
},
uigrid: {
deps: ["jqueryui"]
},
jqgrid: {
deps: ['jqueryui', 'jqgridlocale']
},
jqgridlocale: {
deps: ['jqueryui']
}
}
});
我从这个答案改编了上面的代码:requirejs jquery multiple dependent non module jquery plugins like jquery-ui and jqGrid,它解决了一个更复杂的场景,但我也对你有用。