jQGrid-“一个;“重新加载网格”保持位置

jQGrid-“一个;“重新加载网格”保持位置,jqgrid,Jqgrid,我正在尝试“刷新”或“重新加载”网格,并在网格重新加载后保留具有焦点的行 我已尝试按如下方式进行:- var rowId=$(“#dispatch”).jqGrid('getGridParam','selrow'); var thisRow=(parseInt(rowId)+parseInt(1)); $(“#调度”).trigger(“重新加载网格”); setTimeout(函数(){ $(“#调度”).setSelection(本行); }, 151); 但你可以从位置1到新位置看到它

我正在尝试“刷新”或“重新加载”网格,并在网格重新加载后保留具有焦点的行

我已尝试按如下方式进行:-

var rowId=$(“#dispatch”).jqGrid('getGridParam','selrow');
var thisRow=(parseInt(rowId)+parseInt(1));
$(“#调度”).trigger(“重新加载网格”);
setTimeout(函数(){
$(“#调度”).setSelection(本行);
}, 151);
但你可以从位置1到新位置看到它

有没有其他方法可以重新加载网格并保持焦点位置

尝试:-

//显示当前作业
$('btn current').bind('click',function(){
$.ajax({
键入:“GET”,
url:'scripts/php/jobs.controller.php',
数据:“id=”+“当前”,
成功:功能(数据){
allButtons.removeClass(“活动”);
$('btn current').addClass('active');
$(“#dispatch”).trigger(“reloadGrid”,[{current:true}]);
}
});
});
网格:-

$(函数(){
var lastsel2
var rowsToColor=[];
$(“#调度”).jqGrid({
url:'scripts/xml/jobs.xml',
数据类型:“xml”,
xmlReader:{
root:“工作列表”,
行:“工作”,
重复项:false,
},
colNames:[“时间”、“汽车”、“状态”、“P”、“皮卡”、“区域”、“目的地”、“车费”、“姓名”、“类型”、“电话”、“评论”、“账号”、“允许时间”、“关税”、“电子邮件”、“驾驶员车费”、“驾驶员附加费”、“客户附加费”、“驾驶员”、“驾驶员评论”、“参考号”、“付款”、“从号”、“从街道”、“从邮政编码”、“到号”、“到街道”、“到邮政编码”,“账户名称”,“航班号”,“从区域号”,“到区域号”],
colModel:[
{name:“bookingdatetime”,宽度:55,可编辑:true},
{name:“car”,宽度:45,可编辑:true},
{名称:“jbmessage”,宽度:60},
{名称:“预订”,宽度:10},
{名称:“拾取”,宽度:359,可编辑:true,类:“网格列”},
{名称:“区域”,宽度:50},
{name:“dropoff”,宽度:359,可排序:false,可编辑:true},
{name:“customerfare”,宽度:76,可编辑:true},
{name:“passname”,宽度:100,可编辑:true},
{name:“cartype”,宽度:50,可编辑:true,},
{name:“tel”,宽度:100,可编辑:true},
{名称:“评论”,宽度:150},
{name:“accountno”,隐藏:true},
{name:“allowtime”,隐藏:true},
{name:“tarif”,隐藏:true},
{name:“emailaddress”,隐藏:true},
{name:“driverfare”,隐藏:true},
{name:“driverextras”,隐藏:true},
{name:“customerextras”,隐藏:true},
{name:“driver”,隐藏:true},
{name:“comments1”,隐藏:true},
{name:“referenceno”,隐藏:true},
{name:“payment”,隐藏:true},
{name:“fromno”,隐藏:true},
{名称:“fromstreet”,隐藏:true},
{name:“frompostcode”,隐藏:true},
{name:“tono”,隐藏:true},
{name:“tostreet”,隐藏:true},
{name:“topostcode”,隐藏:true},
{name:“customer”,隐藏:true},
{name:“flightno”,隐藏:true},
{name:“fromzoneno”,隐藏:true},
{名称:“tozoneno”,隐藏:true}
],
loadComplete:函数(){
var rowIds=$('#dispatch').jqGrid('getdataid');
对于(i=1;i=0)
$('#dispatch').resetSelection().setSelection(gridArr[curr#u index-1],true);
}
如果(e.keyCode==40)//向下
{

如果((curr_index+1)而不是使用
setSelection
setTimeout
中,您只需使用
reloadGrid
的附加参数:
current:true
。有关详细信息,请参阅

已更新:gridComplete的代码似乎是您出现问题的原因:

$(“#调度”).setSelection(0,true);
它在使用
id=“0”
重新加载到行后重置网格的选择

我强烈建议您将
loadComplete
的代码替换为更有效的
rowattr
回调。有关相应的代码示例,请参阅

此外,您不应在每一行选择上绑定
$('body')。键入
。以绑定(注册)的方式越来越多的新的
keyup
事件句柄没有解除前一个事件句柄的绑定。我不确定您想在代码部分做什么,但您可能应该将代码移到
onsetrow
回调之外

我看不出有任何理由在创建网格后设置
ondblClickRow
setGridParam
有关。相反,您可以在创建网格时直接在jqGrid选项列表中包含
ondblClickRow
回调(就像您定义的
loadComplete
onsetrow
gridComplete
回调一样)


我建议您在任何jqGrid回调中使用
$(this)
而不是
$(“#dispatch”)

您的意思是像
$(“#dispatch”).trigger(“reloadGrid”,[{current:true}];
-因为这仍然将焦点设置回第1行@Oleg@nsilva:可能您的id副本有问题。您能提供演示问题的小演示吗?我已经添加了@Oleg@nsilva:您能否准备一个小的演示来实时显示问题。目前还不清楚您使用的是哪种数据类型,是否使用loc不管是否有数据,都没有提供jqGrid的代码和测试输入数据……代码中的行
var thisRow=(parseInt(rowId)+parseInt(1));
看起来很可疑。我仍然认为您以错误的方式填充了网格,因此您的id被复制了
<?xml version="1.0"?>
<joblist resultcount="100">
<job id="0">
<pickup>26 CHIPPENHAM MEWS W9 2AN</pickup><dropoff>BREWER STREET W1F 0RJ</dropoff><bookingdatetime>14/05/2014 10:29:19</bookingdatetime><car></car><jbmessage></jbmessage><zone>MOUNTAIN</zone><customerfare>12</customerfare><passname>ele</passname><cartype>Car</cartype><tel>07771764901</tel><comments></comments><accountno></accountno><allowtime>10</allowtime><tarif>1</tarif><emailaddress></emailaddress><driverfare>12</driverfare><driverextras>0</driverextras><customerextras>0</customerextras><driver></driver><comments1></comments1><referenceno>221194</referenceno><payment>Cash</payment><fromno>26</fromno><fromstreet>CHIPPENHAM MEWS</fromstreet><frompostcode>W9 2AN</frompostcode><tono></tono><tostreet>BREWER STREET</tostreet><topostcode>W1F 0RJ</topostcode><prebooking>X</prebooking><customer></customer><flightno></flightno><bookedby>SAJJAD</bookedby><fromzoneno>27</fromzoneno><tozoneno>29</tozoneno></job><job id="1"><pickup>7 FOSBURY MEWS W23JE</pickup><dropoff>HEATHROW TER(T5) TW6 2GA</dropoff><bookingdatetime>13/05/2014 20:57:40</bookingdatetime><car>4</car><jbmessage>PAloc</jbmessage><zone>BALDWIN</zone><customerfare>41</customerfare><passname>BLOECKER</passname><cartype>MPV</cartype><tel>07435358308</tel><comments></comments><accountno></accountno><allowtime>15</allowtime><tarif>2</tarif><emailaddress></emailaddress><driverfare>41</driverfare><driverextras>0</driverextras><customerextras>0</customerextras><driver></driver><comments1></comments1><referenceno>220938</referenceno><payment>Cash</payment><fromno>7</fromno><fromstreet>FOSBURY MEWS</fromstreet><frompostcode>W23JE</frompostcode><tono></tono><tostreet>HEATHROW TER(T5)</tostreet><topostcode>TW6 2GA</topostcode><prebooking>X</prebooking><customer></customer><flightno></flightno><bookedby>SHEERAZ</bookedby><fromzoneno>21</fromzoneno><tozoneno>196</tozoneno>
</job>
</joblist>