jqgrid覆盖树中的默认URL
我有一个网格,它有一个带有按钮和复选框的日期选择器,可以在日期更改时重新加载网格。日期选择器初始化为今天的。这个很好用。但是,我不知道如何覆盖网格中的默认url。无论何时加载作为树的网格,它都会从url配置中读取默认值。仅当我单击按钮时,它才会重新加载带有选定日期的树。最糟糕的是,当我点击树中的图标展开子元素时,它会用默认URL的值覆盖日期和所有加载的数据。有人能告诉我如何正确设置url吗?我也不明白为什么单击元素会重新加载树,因为我有属性loadonce=true 谢谢jqgrid覆盖树中的默认URL,jqgrid,Jqgrid,我有一个网格,它有一个带有按钮和复选框的日期选择器,可以在日期更改时重新加载网格。日期选择器初始化为今天的。这个很好用。但是,我不知道如何覆盖网格中的默认url。无论何时加载作为树的网格,它都会从url配置中读取默认值。仅当我单击按钮时,它才会重新加载带有选定日期的树。最糟糕的是,当我点击树中的图标展开子元素时,它会用默认URL的值覆盖日期和所有加载的数据。有人能告诉我如何正确设置url吗?我也不明白为什么单击元素会重新加载树,因为我有属性loadonce=true 谢谢 $(docum
$(document).ready(function(){
$("#list").jqGrid({
url : "/reconcile?unMatchedOnly=true",
datatype : "json",
mtype : 'GET',
colModel : [
{name : "data.key.busnDate", label : "Business Date", hidden:false, sorttype:"date", width : 100 },
{name : "data.product", label : "Product", sorttype:"string", width : 50, editable : false},
{name : "data.quantityBought", label : "Quantity Bought", sorttype:"int", width : 100, editable : false},
{name : "matches", label : "match", "edittype":"checkbox","formatter":"checkbox", width : 25, editable : false}
],
cmTemplate: { width: 70 },
treeGrid: true,
pager : '#pager',
treeGridModel: "adjacency",
ExpandColumn: "data.key.busnDate",
rowNum : 25,
height: 'auto',
rowList : [ 25,50,100,200 ],
loadonce:true,
});
jQuery("#list").jqGrid('navGrid', '#pager', {
edit : false,
add : false,
del : false,
view : true,
search : true
});
$('#datePick').datepicker({
onSelect: function (dateText, inst) {
var e = $("#list").data("events");
if (typeof (e) !== "undefined" && typeof (e.reloadGrid) !== "undefined") {
$("#list").trigger("reloadGrid");
}
}
}
);
$("#datePick").datepicker('setDate', new Date());
jQuery("#list").setGridParam({url:'/reconcile?datePick=' + $("#datePick").val() + '&unMatchedOnly=' + $("#unMatchedOnly").val(),page:1});
var url = '/reconcile?datePick=' + $("#datePick").val() + '&unMatchedOnly=' + $("#unMatchedOnly").val();
$("#list").jqGrid('setGridParam', { url: url });
});
$('#showSelected').on('click', function () {
var url = '/reconcile?datePick=' + $("#datePick").val() + '&unMatchedOnly=' + $("#unMatchedOnly").val();
$("#list").jqGrid('setGridParam', { url: url });
$("#list").trigger("reloadGrid");
});
我无法重现你报告的问题。如果要立即加载TreeGrid的数据,则不需要使用
loadonce:true
选项。而不是数据项应该包含属性“loaded”:true
如果需要向服务器发送一些附加参数,则应使用属性定义为函数的postData
参数(请参阅)。你可以用
url:“/reconcile”,
postData:{
datePick:function(){return$(“#datePick”).val()},
unMatchedOnly:function(){return$(“#unMatchedOnly”).val()}
}
因此,每次加载网格时,都会将#datePick
和#unMatchedOnly
中的当前数据发送到服务器。要重新加载TreeGrid,只需使用$(“#list”).trigger(“reloadGrid”)代码>
如果按需加载网格数据,则节点扩展会将nodeid
、n_level
和parentid
参数添加到postData
,并且treeANode
参数的值将从-1
更改为扩展节点的rowid。要在重新加载之前重置参数,需要将treeANode
参数重置为-1
我不知道数据的格式,它返回url:“/reconcile”
,但我想您可以使用以下代码
$(文档).ready(函数(){
var$grid=$(“#列表”),
FULLRELOADOFTREGRID=函数(){
var p=$grid.jqGrid(“getGridParam”);//获取对参数的引用
p、 treeANode=-1;//确保重新加载整个网格
$grid.trigger(“重新加载网格”);
};
$('#datePick')。日期选择器({
onSelect:函数(日期文本,inst){
fullReloadOfTreeGrid();
}
});
$(“#datePick”).datepicker('setDate',new Date());
$grid.jqGrid({
url:“/reconcile?unmatchdonly=true”,
数据类型:“json”,
postData:{
datePick:function(){return$(“#datePick”).val()},
unMatchedOnly:function(){return$(“#unMatchedOnly”).val()}
},
colModel:[
{名称:“data.key.busnade”,标签:“业务日期”,
sorttype:“日期”,宽度:100},
{名称:“data.product”,标签:“product”,宽度:50},
{name:“data.quantitybunded”,标签:“Quantity bunded”,
sorttype:“int”,宽度:100},
{名称:“匹配”,标签:“匹配”,
“模板:“布尔复选框”,宽度:25}
],
cmTemplate:{宽度:70},
特雷格里德:没错,
寻呼机:是的,
树模型:“邻接”,
ExpandColumn:“data.key.busnade”
}).jqGrid('navGrid'{
编辑:false,
加:错,,
戴尔:错,
观点:正确
});
$('#showSelected')。在('单击',函数(){
fullReloadOfTreeGrid();
});
});
如前所述,如果您确实一次正确加载了所有节点(所有节点中都有loaded:true
属性),则无需将treeANode
重置为-1
.我无法重现您报告的问题。如果要立即加载TreeGrid的数据,则不需要使用loadonce:true
选项。数据项应包含属性“loaded”:true
如果需要向服务器发送一些附加参数,则应使用属性定义为函数的postData
参数(请参阅)。您只需使用
url:“/reconcile”,
postData:{
datePick:function(){return$(“#datePick”).val()},
unMatchedOnly:function(){return$(“#unMatchedOnly”).val()}
}
因此,每次加载网格时,来自#datePick
和#unmatchdonly
的当前数据都将发送到服务器。要重新加载TreeGrid,只需使用$(“#list”).trigger(“reloadGrid”)
如果按需加载网格数据,则节点扩展会将nodeid
、n\u level
和parentid
参数添加到postData
,并且treeANode
参数的值将从-1
更改为扩展节点的rowid。在重新加载之前重置参数g> 您需要将treeANode
参数重置为-1
我不知道数据的格式,它返回url:“/reconcile”
,但我想您可以使用以下代码
$(文档).ready(函数(){
var$grid=$(“#列表”),
FULLRELOADOFTREGRID=函数(){
var p=$grid.jqGrid(“getGridParam”);//获取对参数的引用
p、 treeANode=-1;//确保重新加载整个网格
$grid.trigger(“重新加载网格”);
};
$('#datePick')。日期选择器({
onSelect:函数(日期文本,inst){
fullReloadOfTreeGrid();
}
});
$(“#datePick”).datepicker('setDate',new Date());
$grid.jqGrid({
url:“/reconcile?unmatchdonly=true