DoJo 增强的网格动态更新约束不起作用

Posted

技术标签:

【中文标题】DoJo 增强的网格动态更新约束不起作用【英文标题】:DoJo Enhanced grid updating constraints dynamically is not working 【发布时间】:2018-12-11 04:12:53 【问题描述】:

我有一个带有可编辑数字文本框的 DoJo 增强数据网格,带有一些默认的最小和最大约束。一旦网格完全加载,我需要更改约束。请提供相同的建议。下面是代码 sn-p,我将默认约束应用为 min 0 和 max 100。

    是否可以在定义布局时从 dataStore 字段(即 minAge 和 maxAge)设置最小和最大约束值?

    如果没有,是否可以更新这些默认约束?

    require(["dojox/grid/cells/dijit","dojox/grid/DataGrid"],function()    
           window.masterlayout = [ [
            'name' : 'Employee Name',styles:"word-wrap:break-word;", 'field' : 'msisdn',editable : false,
            'name' : 'Min Age','field' : 'minAge' ,styles:"word-wrap:break-word;",editable : false,
            'name' : 'Max age','field' : 'maxAge' ,styles:"word-wrap:break-word;",editable : false,
            'name' : 'Age',
             'field' : 'age',
             'editable': true, 
              singleClickEdit :true,
             'alwaysEditing': false,
              styles:"word-wrap:break-word;",
              autoSave : false, 
              type:dojox.grid.cells._Widget, 
              widgetClass: dijit.form.NumberTextBox ,
              widgetProps: required: true , 
              constraint:min:0,max:100,places:0 ,
              formatter : function(item, rowIndex, cell)  
                  var html = '<a href="javascript:ageLimitStatusGrid.edit.setEditCell(ageLimitStatusGrid.getCell(3),'+rowIndex+');">'+item+'</a>';
              return html; 
             
           
            ] ];
    );
    
                var url = "Test URL";
                dataStore =new ServerSideStore(target:url);
                ageLimitStatusGrid = new EnhancedGrid(
                        store: dataStore,
                        structure: masterlayout,
                        selectionMode : 'none',
                        autoHeight : true,
                        //autoWidth : true,
                        autoRender : true,
                        queryOptions : 'deep' : true,
                        noDataMessage : '<span class="dojoxGridNoData">No Data found</span>',
                        loadingMessage : '<fmt_rt:message key="clls.loading.message"/>',
                        rowsPerPage: 5,
                        baseClass: 'balance_list',
                        plugins: 
                            pagination:  
                                pageSizes: [],maxPageStep: 5,
                                description: true,
                                sizeSwitch: true,
                                position: "bottom"
                            
                        
                , "ageLimitStatusGrid");
                ageLimitStatusGrid.startup();
    

【问题讨论】:

【参考方案1】:

您需要使用 grid.set('structure', layoutVariable) 方法更新布局。

【讨论】:

以上是关于DoJo 增强的网格动态更新约束不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Dojo dGrid/dStore 实时更新

自定义 tableviewcell 动态高度未根据约束更新(以编程方式自动布局)

使用指定的 x 和 y 值更新动态 Dojo 图表

agm-map 动态显示/更新标记不起作用

DOJO:DataGrid 增量加载不起作用

更新后刷新网格不起作用