标签: extjs-grid

如何在网格中以编程方式设置列的编辑器

我有一Ext.grid.Panel组列.此网格已过滤,根据过滤器,我想为列定义编辑器.

我的网格:

Ext.define('Mb.view.MyPanel', {
    extend: 'Ext.grid.Panel',
    columns: [
        {text: 'Order #', dataIndex: 'id'},
        {text: 'Action', dataIndex: 'type',
            renderer: function(value){
                if(value == 'BP') return Lang._('Veuillez choisir')
                 return ''
            }
        },
Run Code Online (Sandbox Code Playgroud)

现在我想做一些事情:

var panel = Mb.app.getView('MyPanel');
if (condition == true) {
    panel.getColumns[1].setEditor({
        xtype: 'textfield',
        ...
    })
}
Run Code Online (Sandbox Code Playgroud)

显然,方法getColumnssetEditor不存在.因此,我需要另一种方法来激活该列上的编辑器.
我没有找到一种方法来访问列定义来修改它们并在之后重新呈现网格.

你能给我一个关于搜索方向的提示吗?谢谢.

extjs extjs4.2 extjs-grid

8
推荐指数
1
解决办法
1万
查看次数

ExtJS 6:在单个网格列中使用多个编辑器的问题

笔记

ExtJS版本:6.2.1.167

小提琴:fiddle.sencha.com/#view/editor&fiddle/1tlt

此功能在ExtJS 2.x中有效,并且没有任何问题.


目标

拥有一个网格(带有分组功能和单元格编辑插件),可以在一列中包含多个不同的编辑器(textfieldcombos).

网格颠覆了传统的表格系统,以便垂直显示字段名称和记录值.表头的示例如下所示:

+-------------+-----------------+-----------------+-----------------
- Field Names - Record 1 Values - Record 2 Values - Editable Column
+-------------+-----------------+-----------------+-----------------
Run Code Online (Sandbox Code Playgroud)

我们不能使用传统系统,因为有数百个字段,但只有几个记录可供比较.


这是小提琴

这是允许我使用多个编辑器的主要代码:

Ext.define('MemberCellEditing', {

  extend: 'Ext.grid.plugin.CellEditing',
  xtype: 'membercellediting',
  alias: 'plugin.membercellediting',

  getCachedEditor: function(editorId, record, column) {
    var me = this,
      editors = me.editors,
      dropDownName = record.get('dropDown');

    // If dropdown field, use dropdown name as editor id
    if (dropDownName && dropDownName != 'N') editorId = dropDownName;

    // Attempt to get editor
    var …
Run Code Online (Sandbox Code Playgroud)

javascript extjs extjs-grid extjs6

7
推荐指数
1
解决办法
902
查看次数

根据ExtJs 4.1网格中的另一列对一列进行排序

我正在使用ExtJs 4.1框架.我有一个网格,只显示一列(名称).网格与具有两个字段(Name和SortOrder)的商店相关联.商店中的"名称"字段与网格的"名称"列相关联.我想根据商店中SortOrder字段中可用的值对名称列进行排序.我怎样才能实现这样的逻辑.

谢谢

extjs4.1 extjs-stores extjs-grid

7
推荐指数
2
解决办法
4656
查看次数

当我点击取消时,如何让extjs中的rowediting插件不添加行?

目前该rowediting插件提供了选项update/cancel.当我按下cancel按钮时,如果它是新添加的行,我希望它不添加新行.

我怎样才能做到这一点?

这是FIDDLE.

目前,有了rowediting,我只是添加和删除行.如果无法使用cancel,如何添加新按钮close并使其不添加行.

我也在查看sencha论坛,我找到了一个POST,其中说明如下:

  1. fireEvent canceledit

  2. 如果autoRecoverOnCancel是真的,如果记录是幻影然后删除它

但是,这也行不通.你能建议吗?

var rowEditing = Ext.create('Ext.grid.plugin.RowEditing', {
    clicksToMoveEditor: 1,
    autoCancel: false,

});

tbar: [{
    text: 'Add Employee',
    iconCls: 'employee-add',
    handler: function() {
        rowEditing.cancelEdit();

        // Create a model instance
        var r = Ext.create('Employee', {
            name: 'New Guy',
            email: 'new@sencha-test.com',
            start: new Date(),
            salary: 50000,
            active: true
        });

        store.insert(0, r);
        rowEditing.startEdit(0, 0);
    }
}, {
    itemId: 'removeEmployee', …
Run Code Online (Sandbox Code Playgroud)

javascript extjs extjs4.2 extjs-grid roweditor

5
推荐指数
1
解决办法
5768
查看次数

ExtJs - 复选框选择模型,每行禁用复选框

我有一个带复选框选择模型的网格.

Ext.define('Mb.view.ship.OrdersGrid', {
    extend: 'Ext.grid.Panel',
    selType: 'checkboxmodel',
    selModel: {
        injectCheckbox: 0,
        pruneRemoved: false
    },
    ...
Run Code Online (Sandbox Code Playgroud)

根据字段中的值,有些行不可选择.

在普通列中,我可以renderer使用css(metadata.tdCls)干预显示和隐藏单元格内容,但对于自动生成的复选框列,我找不到一种方法来禁用或隐藏行的复选框.

有谁知道如何做到这一点?

checkbox extjs selectionmodel extjs-grid

5
推荐指数
2
解决办法
2万
查看次数

可编辑网格ExtJS,如何在网格上编辑行后更新数据库中的行

首先,抱歉我的英语不是很好!

我需要制作下一个东西:ExtJS 3.4可编辑网格(示例),它将使用json格式.输入源采用json格式.我做到了,一切正常,就像在例子中.

我做了:

  1. 数据从数据库下载到php中的数组
  2. 数组被编码为json格式
  3. 可编辑的网格源是一个带有json消息的页面,现在一切正常.

现在我需要这样做:我需要更新网格中单元格更新的数据库中的数据.

我怎样才能做到这一点?在网上找不到任何东西.
也许在delphi7中有一些类似'OnCellEditting'的方法?

我的js代码:

Ext.onReady(function () {
    function formatDate(value) {
        return value ? value.dateFormat('M d, Y') : '';
    }

    // shorthand alias
    var fm = Ext.form;

    // the column model has information about grid columns
    // dataIndex maps the column to the specific data field in
    // the data store (created below)
    var cm = new Ext.grid.ColumnModel({
        // specify any defaults for each column
        defaults: {
            sortable: false // columns are …
Run Code Online (Sandbox Code Playgroud)

javascript extjs extjs3 extjs-grid

4
推荐指数
1
解决办法
5706
查看次数

从extjs 4的手风琴和网格中获取价值

我想针对网格值的参数制作pdf报告.我希望手风琴标题的年份为参数编号1,月份名称为参数编号2.但是我无法做到.任何人都可以帮我这个.这是我的代码如下:

Ext.define('Ext4Example.view.attendence.Timeperiod' ,{
    extend: 'Ext.form.Panel',
    alias : 'widget.timeperiod',
    id: 'timeperiod',
    region: 'west',
    border: true,
    width: 150,
    height:395,
    split: true,
    defaults: {
        // applied to each contained panel
        //bodyStyle: 'padding:15px'
    },
    layout: {
        // layout-specific configs go here
        type: 'accordion',
        titleCollapse: true,
        animate: true,
        activeOnTop: true,
        hideCollapseTool : true

    },

    initComponent: function() {
        var me = this;
        me.items = me.maccord();
        me.callParent(arguments);
    },
    mstore: function(year){
        var data = [
            [1,  year, 'January'  ],
            [2,  year, 'February' ],
            [3,  year, 'March'    ],
            [4, …
Run Code Online (Sandbox Code Playgroud)

javascript extjs extjs4 extjs4.1 extjs-grid

3
推荐指数
1
解决办法
762
查看次数

Extjs:在同一行中另一个单元格的每次更改时更改网格单元格值

我正在研究extjs Grid面板,它有2列,如下图所示.

在此输入图像描述

我的要求是在相应的"任务描述"单元格值的每次更改时更改"短名称"单元格值.我使用编辑器"任务描述"列,如下所示.

columns: [
    { 
        text: 'Task Description',  
        dataIndex: 'TaskDescription', 
        flex : 1.5, 
        editor: {
            xtype : 'textarea', 
            allowBlank : false,
            listeners : {
                change : function(field, e) {
                    var text = field.value;
                    if(text.length <= 26 && !text.match(/[.:-]/)) {
                        if(text.length == 26) {
                            text = text[25]==' ' ? text : text.substring(0, text.lastIndexOf(' '));
                        } 
                        //code to set short name cell value.
                    }
                }
            }
        } 
    },
    { 
        text: 'Short Name', 
        dataIndex: 'Name', 
        width: 130
    }
]
Run Code Online (Sandbox Code Playgroud)

但是如何访问"短名称"列以从更改事件功能设置它.

请建议我的解决方案.

提前致谢.

javascript extjs extjs-grid

2
推荐指数
1
解决办法
2万
查看次数