我想在dhtmlx中创建一行只读但我想让另一行可编辑,但有些条件如
id%2 = 0是可编辑的。
function doInitGrid(){
mygrid = new dhtmlXGridObject('mygrid_container');
mygrid.selMultiRows = true;
mygrid.setImagePath("codebase/imgs/");
mygrid.setHeader("No, Id, Kd Dep, Kd Prog");
mygrid.setInitWidths("30,50,60,60");
mygrid.setColAlign("left,left,left,left");
mygrid.setColTypes("ro,ro,ro,ro");
mygrid.init();
mygrid.load('test.xml');
}
答案 0 :(得分:3)
您可以使用事件来自定义网格的行为。像下一个
mygrid.attachEvent("onEditCell", function(stage, id, index){
if (id%2) return false; //block edit operations
return true;
});
答案 1 :(得分:0)
您还可以控制后端可编辑的内容(生成test.xml数据的过程)。
我有一个相当复杂的网格,我有同样的需求。我通过首先使用setColTypes函数设置我的列类型来完成此操作。多数规则,意味着如果列的大部分行都是edtxt,那么我在这里将其设置为edtxt ...
myGrid.setColTypes("link,edtxt,ron,ron,edn,edn,ron[=(c4*c15)+c5],edn,edn,ron[=(c7*c15)+c8],edn,edn,ron[=(c10*c15)+c11],ro,ro,ro");
然后对于我想要成为不同类型的列,我只是在后端构建xml时分配类型。我删除了服务器端代码(在这种情况下是pl / sql生成了这个xml)...
<?xml version="1.0" encoding="UTF-8"?>
<rows>
<row id="100">
<cell colspan="2" style="font-weight:bold;" type="ro">Inspections</cell>
<cell type="ro"/>
<cell type="ro"/>
<cell type="ro"/>
<cell type="ro"/>
<cell type="ro"/>
<cell type="ro"/>
<cell type="ro"/>
<cell type="ro"/>
<cell type="ro"/>
<cell type="ro"/>
<cell type="ro"/>
<cell type="ro"/>
<cell type="ro"/>
</row>
<row id="1">
<cell>BLAHBLAH^javascript:gotoRec(1745563)^_self</cell>
<cell id="jon"/>
<cell>0</cell>
<cell>0</cell>
<cell id="cticol1">100</cell>
<cell id="cticol2">200</cell>
<cell/>
<cell id="cticol3">0</cell>
<cell id="cticol4">0</cell>
<cell/>
<cell id="cticol5">1.11</cell>
<cell id="cticol6">2.22</cell>
<cell/>
<cell/>
<cell>10000277932021</cell>
<cell>444.4</cell>
</row>
</rows>
所以即使某些列是可编辑的,有些是链接等等,整个第一行都是只读的,因为我重写了xml中优先使用的colTypes。
希望这有帮助。
答案 2 :(得分:0)
您可以将ed编写为setcolTypes
,以使该列可编辑。
mygrid.setColTypes("ro,ed,ro,ed");