Как мне расположить мои кнопки в определенных столбцах моего выбора в моем 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);
}
},