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

Posted

技术标签:

【中文标题】如何在我的 dojo GridX 中将我的按钮置于我选择的特定列中?【英文标题】:How do I center my buttons in specific columns of my choosing in my dojo GridX? 【发布时间】:2014-11-05 19:51:24 【问题描述】:

我能够使用以下方法使标题中的文本居中:

[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】:

如果您想在单元格中包含小部件,建议使用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);
  
,

【讨论】:

以上是关于如何在我的 dojo GridX 中将我的按钮置于我选择的特定列中?的主要内容,如果未能解决你的问题,请参考以下文章

是啥导致我的 dojo GridX 出现奇怪的图形故障?

处理 dojo gridx 中分页的更改事件

如何在android中将按钮置于按下状态

Dojo gridx:使用“onAfterRow”禁用“onCellWidgetCreated”?

特定操作完成后 Dojo Gridx 刷新表?

加载时gridx模块未定义错误