gpt4 book ai didi

javascript - jqgrid - 'setCell' 在卡住列中不起作用

转载 作者:行者123 更新时间:2023-11-30 16:53:51 29 4
gpt4 key购买 nike

我有一个具有卡住列的 jqgrid。我必须更新卡住列中的单元格值,但它不起作用。

这是 fiddler :https://jsfiddle.net/99x50s2s/5/

HTML

<table id="sg2"></table>
<div id="psg2"></div>

<br>

<button type='button' id="SetGrid2">Update 'client' in first row of Grid 2</button>

JavaScript

jQuery("#sg2").jqGrid({
datatype: "local",
gridview: true,
loadonce: true,
shrinkToFit: false,
autoencode: true,
width:500,
height: 'auto',
viewrecords: true,
sortorder: "desc",
scrollrows: true,
loadui: 'disable',
colNames:['Inv No','Date', 'Client', 'Amount','Tax','Total','Notes'],
colModel:[
{name:'id',index:'id', width:60, sorttype:"int",frozen: true },
{name:'invdate',index:'invdate', width:90, sorttype:"date",frozen: true },
{name:'name',index:'name', width:100,frozen: true },
{name:'amount',index:'amount', width:80, align:"right",sorttype:"float"},
{name:'tax',index:'tax', width:80, align:"right",sorttype:"float"},
{name:'total',index:'total', width:80,align:"right",sorttype:"float"},
{name:'note',index:'note', width:150, sortable:false}
],
caption: "Grid 2 - with Frozen columns"
}).jqGrid('setFrozenColumns');

var mydata = [
{id:"1",invdate:"2007-10-01",name:"test 1234567890123456789",note:"note",amount:"200.00",tax:"10.00",total:"210.00"},
{id:"2",invdate:"2007-10-02",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"}
];

for(var i=0;i<=mydata.length;i++)
jQuery("#sg2").jqGrid('addRowData',i+1,mydata[i]);


$('#SetGrid2').on('click', function(){
jQuery("#sg2").jqGrid('setCell', 1, 'name', 'Updated');
});

我在 jqgrid 中使用“setCell”功能来设置单元格值。如果卡住属性从该列中删除,或者如果该列已排序,我将看到新值。

我是否遗漏了任何特定于卡住列的内容?

环境:jqgrid插件4.6.0,IE 9

应用的解决方案:

就我而言,我无法将 jqGrid 插件更新到最新版本。因此,销毁并设置卡住列作为解决方法,效果很好。

           myGrid.jqGrid('destroyFrozenColumns');

if (rowData.Id == 0) {
myGrid.jqGrid('setCell', rowid, 'Edit', 'New');
}
else {
myGrid.jqGrid('setCell', rowid, 'Edit', null);
}

myGrid.jqGrid('setFrozenColumns');

最佳答案

unclear from the wiki , 但无法编辑卡住的列(包括通过 setCell 函数。)

这可以通过解冻列、设置单元格值,然后在“点击”事件结束时再次卡住它们来处理:

$('#SetGrid2').on('click', function(){
jQuery('#sg2').jqGrid('destroyFrozenColumns');
var cell = jQuery("#sg2").jqGrid('setCell', 1, 'name', 'Updated');
jQuery('#sg2').jqGrid('setFrozenColumns');
});

Working Fiddle

[后人注意事项] - 如果您想动态更改哪些列被卡住,您可以通过解冻 - 设置/取消设置卡住 - 然后重新卡住来进行类似的操作,但您还必须调用 触发器

// freezes the amount col as well...
$('#SetGrid2').on('click', function(){
jQuery("#sg2")
.jqGrid('destroyFrozenColumns')
.jqGrid('setColProp','amount', {frozen:true})
.jqGrid('setFrozenColumns')
.trigger('reloadGrid', [{current:true}])
});

Another Fiddle

关于javascript - jqgrid - 'setCell' 在卡住列中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30088229/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com