jqgrid覆盖树中的默认URL

jqgrid覆盖树中的默认URL,jqgrid,Jqgrid,我有一个网格,它有一个带有按钮和复选框的日期选择器,可以在日期更改时重新加载网格。日期选择器初始化为今天的。这个很好用。但是,我不知道如何覆盖网格中的默认url。无论何时加载作为树的网格,它都会从url配置中读取默认值。仅当我单击按钮时,它才会重新加载带有选定日期的树。最糟糕的是,当我点击树中的图标展开子元素时,它会用默认URL的值覆盖日期和所有加载的数据。有人能告诉我如何正确设置url吗?我也不明白为什么单击元素会重新加载树,因为我有属性loadonce=true 谢谢 $(docum

我有一个网格,它有一个带有按钮和复选框的日期选择器,可以在日期更改时重新加载网格。日期选择器初始化为今天的。这个很好用。但是,我不知道如何覆盖网格中的默认url。无论何时加载作为树的网格,它都会从url配置中读取默认值。仅当我单击按钮时,它才会重新加载带有选定日期的树。最糟糕的是,当我点击树中的图标展开子元素时,它会用默认URL的值覆盖日期和所有加载的数据。有人能告诉我如何正确设置url吗?我也不明白为什么单击元素会重新加载树,因为我有属性loadonce=true

谢谢

    $(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