我用数据库请求加载网格(在PHP中使用CodeIgniter abd jqgrid helper)。我没有任何问题可以显示带有我的数据的漂亮网格。我想显示一个带有复选框的新列,以选择一个或几行。加载后无法添加新列。因此,我尝试这样做:-在创建网格时添加了列,-在创建时,我添加了带有函数的'loadComplete'选项,-在播放时,函数被执行。这里是 :function ajoutCheckBox() { var grille = $("#users_grid"); // Construire les checkbox dans la colonne D grille.setColProp('Dest', {editable: true}); grille.setColProp('Dest', {edittype: 'checkbox'}); grille.setColProp('Dest', {editoptions: { value: "True:False" }}); grille.setColProp('Dest', {formatter: "checkbox"}); grille.setColProp('Dest', {formatoptions: { disabled: true}}); // Insérer la valeur false dans toutes les lignes de la colonne D var index = grille.jqGrid('getGridParam', '_index'); for(i in index) { grille.jqGrid('setCell', i, 'Dest', 'False', {}); }}如您所见,gris称为“ #users_grid”,列名为“ Dest”。我的问题:没有附加内容...谢谢您的帮助 !XB编辑:我发现以下解决方案:复选框列添加在colModel语句中,为了初始化该值并激活复选框(在创建!时将其禁用),我使用了"loadComplete"回调函数。代码很简单,但我很难找到...网格创建:loadComplete: function() { ajoutCheckBox() },colModel:[.... {"name":"Env","index":"Env","width":30,"hidden":false,"align":"left","edittype":"checkbox","formatter":"checkbox","formatoptions":"{ disabled: false}","editable":true,"editoptions":{"editoptions":"{ value: \"True:False\", defaultValue: \"False\" }}","size":10}}, ....]回调函数:function ajoutCheckBox() { var grille = $("#users_grid"); var index = grille.jqGrid('getGridParam', '_index'); for(i in index) { // Pour toutes les lignes du tableau grille.jqGrid('setCell', i, 'Env', 'False'); $('#'+i).find("input:checkbox").removeAttr('disabled'); }}它似乎没有被优化,但是可以工作!
3 回答
呼如林
TA贡献1798条经验 获得超3个赞
对不起,但我不完全了解您的工作。如果formatter: "checkbox"
用于某列,则复选框的值将根据输入值自动设置(“ true”,“ yes”或“ 1”会在选中复选框后进行设置)。无需执行其他操作loadComplete
。如果希望不禁用复选框,则需要使用formatoptions: { disabled: false}
该列的属性 。要检测复选框状态的更改,可以使用beforeSelectRow
回调。setCell
例如,可以使用它来保存复选框的新状态
慕田峪7331174
TA贡献1828条经验 获得超13个赞
我在创建时添加了列的属性,它更加简单并且有效。我正在使用loadComplete
回调函数来初始化复选框的布尔值。但是,尽管如此,它们还是不可编辑的editable:true
。我正在寻找原因。
添加回答
举报
0/150
提交
取消