jqgrid是这样取出所选择项id的:
var tempNumIids=jQuery("#listItemDefine").jqGrid('getGridParam','selarrrow');
如果你对这个tempNumIids进行一些循环操作的时候,会有一些悲剧发生,因为这个值一直在变动。
比如每当进行取消勾选的时候,他就发生变化了,而且顺序也会发生变化,所以不能直接对他进行循环操作。
首先想到克隆一个tempNumIids:
// 完全克隆一个数组
BatchModify.prototype.cloneArr=function(arr)
{
var arrNew = [];
for(var i=0;i<arr.length;i++)
{
arrNew.push(arr[i]);
}
return arrNew;
}
然后再使用这个克隆的数据进行for循环操作:
// 通过jqGrid('getGridParam','selarrrow');取值是不可靠的,经常会变动
// 在设置jqGrid('setSelection',bindedArr[i]);之后取出来的值经常会变化,要么长度变化,要么顺序变化
BatchModify.prototype.cancelBindedItem=function()
{
var tempNumIids=jQuery("#listItemDefine").jqGrid('getGridParam','selarrrow');
var tempNumIidsClone = this.cloneArr(tempNumIids);
var isAlert=false;
for(var i=0;i<bindedArr.length;i++)
{
for(var j=0;j<tempNumIidsClone.length;j++)
{
alert(tempNumIidsClone);
if(tempNumIidsClone[j]==bindedArr[i])
{
isAlert=true;
jQuery("#listItemDefine").jqGrid('setSelection',bindedArr[i]);
break;
}
}
}
if(isAlert) alert("已经绑定了数据来源的宝贝不能修改宝贝设置,如果需要修改请先点击宝贝最右栏的解绑按钮解绑!");
}