Как мне расположить мои кнопки в определенных столбцах моего выбора в моем dojo GridX?

Я смог центрировать текст в заголовке, используя это:

[colid="startstop"].gridxCell{ 
    text-align: center; 
}

Я думал, что это центрирует все ячейки строки, принадлежащие столбцу стартовой остановки, но это не так. Мой стартовый столбец содержит одну кнопку в каждой строке. У меня есть два других столбца, как это. Как расположить кнопки по центру в трех выбранных мной столбцах?

Вот кусочек моей структуры:

                     { id: 'startstop', field: 'startstop', name: 'Start/Stop', width: '61px', 
                        widgetsInCell: true, 
                        navigable: true, 
                        allowEventBubble: true, 
                        decorator: function(){ 
                                //Generate cell widget template string 
                                return [ 
                                        '<button data-dojo-type="dijit.form.Button" ', 
                                        'data-dojo-attach-point="btn" ', 
                                        'class="startStopButton" ', 
                                        'data-dojo-props= ', 
                                        '"onClick: function(){', 
                                                'alert(\'Start/Stop\');', 
                                        '}"><img src="images/1413390026_control.png" /></button>' 
                                ].join(''); 
                        }, 
                        setCellValue: function(data){ 
                                //"this" is the cell widget 
                                this.btn.set('label', data); 
                        } 
                    }, 

Вот мой класс css - он пока делает только размер кнопки, так как у меня возникают другие проблемы с тем, чтобы заставить его работать самостоятельно - но это другой вопрос.

.startStopButton .dijitButtonNode {
  width: 16px;
  height: 16px;
  text-align: center;
}

1 ответ

Если вы хотите включить виджеты в ячейку, рекомендуется использовать widgetsInCell флаг вместе с onCellWidgetCreated а также setCellValue методы (как описано здесь).

Вот как я использую ячейку с горизонтальным ползунком:

{
  id: 'scoreColId',
  field: 'score',
  name: 'Score',
  width: '15%',

  // flag there are widgets in cell so that they are destroyed when grid is destroyed
  widgetsInCell: true,

  // method to create the widget (no cell-specific data yet)
  onCellWidgetCreated: function(cellWidget, column) {
    // outer div to center align the widget inside placed in the cell
    var outerDiv = domConstruct.create('div', {
      style: {
        'text-align': 'center'
      }
    }, cellWidget.domNode);

    // create the widget and place it in the div (already inside the cell)
    cellWidget.slider = new HorizontalSlider({
      minumum: 0,
      maximum: 10,
    });
    cellWidget.slider.placeAt(outerDiv);
  },

  // set each cell with it's specific data
  setCellValue: function(gridData, storeData, cellWidget) {
    var score = gridData.docScore;
    cellWidget.slider.set('value', score);
  }
},

Другие вопросы по тегам