在dhtmlx网格上进行一些行可编辑和其他行只读

时间:2013-12-18 07:33:03

标签: dhtmlx

我想在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');
}

3 个答案:

答案 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");