OnBeforeRow Dojo не вызывается

Я пытаюсь найти обходной путь в Dojo Toolkit, где вы не можете выполнить colspan в первой строке, добавив в нее фиктивную строку только с шириной. После создания строки она будет скрыта с помощью метода onBeforeRow.

Пожалуйста, обратитесь к следующему в качестве справки.

  1. Отчет об ошибках Dojo

  2. Dojo-Grid-Header-Column-Grouping

Вот мой код:

ConfirmGridGrid = new DataGrid({
    store: ConfirmGridDataStore,
    structure: [
        [
             { width: '35px'} 
            ,{ width: '35px'} 
            ,{ width: '60px'} 
            ,{ width: '60px'} 
            ,{ width: '60px'} 
            ,{ width: '60px'} 
            ,{ width: '25px'} 
            ,{ width: '25px'} 
            ,{ width: '40px'} 
            ,{ width: '25px'} 
            ,{ width: '25px'} 
            ,{ width: '25px'} 
            ,{ width: '240px'} 
            ,{ width: '25px'} 
        ],[
             { name: 'Product Code', field: 'ProductCD', width: '70px', colSpan: 2, editable: false} 
            ,{ name: 'Product Name', field: 'ProductNM', width: '240px', colSpan: 4, editable: false} 
            // The rest of second column..............................
        ],[
            // Third column..............................
        ]
    ],
    onBeforeRow: function(inDataIndex, inSubRows){
        inSubRows[0].invisible = true;
    }
}, "ConfirmGrid");
ConfirmGridGrid.startup();

По какой-то причине событие onBeforeRow не вызывается. Есть ли что-то, что вам нужно добавить? или вам нужно сделать другую проводку событий, чтобы она работала? Кстати, я использую Dojo 1.9.1.


person Nap    schedule 27.12.2013    source источник


Ответы (1)


В конце концов я узнал, почему его не вызывают. Я разместил его в неправильном месте.

Я должен был поместить его как атрибут значения структуры вместо определения сетки.

Надеюсь, это поможет кому-то еще позже.

structure: [
    [
         { width: '35px'} 
        ,{ width: '35px'} 
        ,{ width: '60px'} 
        ,{ width: '60px'} 
        ,{ width: '60px'} 
        ,{ width: '60px'} 
        ,{ width: '25px'} 
        ,{ width: '25px'} 
        ,{ width: '40px'} 
        ,{ width: '25px'} 
        ,{ width: '25px'} 
        ,{ width: '25px'} 
        ,{ width: '240px'} 
        ,{ width: '25px'} 
    ],[
         { name: 'Product Code', field: 'ProductCD', width: '70px', colSpan: 2, editable: false} 
        ,{ name: 'Product Name', field: 'ProductNM', width: '240px', colSpan: 4, editable: false} 
        // The rest of second column..............................
    ],[
        // Third column..............................
    ],
    ,onBeforeRow: function(inDataIndex, inSubRows){
        inSubRows[0].invisible = true;
    }
],

Также в моем случае сделать его невидимым недостаточно. вам нужно изменить css, чтобы удалить отступы и границы.

tr.dojoxGridInvisible th
{
    padding: 0px !important;
    border: 0px !important;
}

tr.dojoxGridInvisible td
{
    padding: 0px !important;
    border: 0px !important;
}

Примером кода, который привел меня к ответу, был этот список рассылки. здесь

person Nap    schedule 28.12.2013
comment
как я могу перезаписать настройки css программно? - person h0ppel; 07.06.2016