如何在我的dojo GridX中将我的按钮置于我选择的特定列中?

时间:2014-11-05 19:51:24

标签: css button dojo dijit.form dojo.gridx

我能够将文本集中在标题中,使用:

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

我认为这会使属于startstop列的所有行单元居中,但事实并非如此。我的startstop列在每行中包含一个按钮。我有两个像这样的列。如何将按钮置于我选择的三列中心?

这是我的结构:

                     { 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 个答案:

答案 0 :(得分:0)

如果要在单元格中包含小部件,建议使用widgetsInCell标记以及onCellWidgetCreatedsetCellValue方法(如文档here所示)

以下是我如何使用带有水平滑块的单元格:

{
  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);
  }
},