如何在 OnDemandGrid 中更改小部件的宽度

Posted

技术标签:

【中文标题】如何在 OnDemandGrid 中更改小部件的宽度【英文标题】:How do I change width of a widget in OnDemandGrid 【发布时间】:2017-03-05 04:03:08 【问题描述】:

我想更改通过 dgrid/editor 插入 OnDemandGrid 的小部件的宽度。模板文件通过调用this.ruleLinesColumns() 来设置列,该this.ruleLinesColumns() 返回函数返回的列。我通过以下代码在列中使用 dgrid/editor 插件。默认情况下,小部件的宽度设置为比列宽宽很多。我想将其设置为 100%,以便它适合列而不是越过它。

这是我的文件:

模板文件

<div data-dojo-type="dijit/layout/ContentPane"
         data-dojo-props="region: 'center', gutters: false">

        <div data-dojo-type="dgrid/OnDemandGrid" 
             data-dojo-mixins="dgrid/Selection, dgrid/extensions/DijitRegistry, prophet/common/dgrid/_StandardGridMixin, prophet/common/dgrid/_TreeRowHighlightingMixin"
             data-dojo-attach-point="ruleLinesGrid"
             data-dojo-props="'class': 'grid',
                              store: this.ruleLinesStore,
                              columns: this.ruleLinesColumns(),
                              sort: 'sequence',
                              selectionMode: 'single',
                              deselectOnRefresh: false">
    </div>
</div>

我在哪里设置列

ruleLinesColumns: function() 
    var self = this;
    return [
        ...
        editor(
            field: "training",
            label: msgs.editor.training,
            sortable: false,
            required: true,
            autoSave: true
        , NumberTextBox),
        ...
    ];
,

我尝试了几种不同的方法,例如 style: width: '100%'width: '100%',但似乎没有任何效果。

这里是 dgrid/editor 的文档: https://github.com/SitePen/dgrid/blob/master/doc/components/mixins/Editor.md

【问题讨论】:

【参考方案1】:

我找到了答案!

因为列小部件是通过 dgrid/editor 传入的,所以您实际上可以在 editorArgs 中包含您需要为 NumberTextBox 设置的所有内容。

例如,我必须让小部件的 宽度为 100%,并且还要确保 NumberTextBox 在使其 时只能输入 正整数 >必需

editor(
    field: "training",
    label: msgs.editor.training,
    sortable: false,
    autoSave: true,
    editorArgs: 
        required: true,    // Since required isn't part of editor's field, I had to put it into editorArgs as well
        constraints: min: 0, places: 0,
        style: width: '100%'
    
, NumberTextBox),

【讨论】:

以上是关于如何在 OnDemandGrid 中更改小部件的宽度的主要内容,如果未能解决你的问题,请参考以下文章

如何通过引用有状态小部件来传递数据?我想更改有状态小部件中的变量并更新原始变量

如何在 android 中动态更改 EditText 小部件的文本大小?

如何更改小部件启动器预览?

如何更改 GTK 容器小部件的大小?

如何使用箭头键更改小部件之间的焦点?

如何在颤动中更改容器小部件中的背景图像