ExtJs - 网格分组问题

发布于 2024-12-07 11:55:32 字数 2086 浏览 1 评论 0原文

一个简单的表格包含 - id名称文本。 我需要将这些数据放入网格中,并按字段名称进行分组。 在我找到的所有示例中(例如 - paper ) 使用已定义数据的变量。我需要从 Store 获取数据。

ExtJs 3

代码:

    Ext.onReady(function() {
    var store = new Ext.data.JsonStore({
        url           : 'get_from_db.php',
        storeId       : 'MyStore',
        totalProperty : 'totalCount',
        idProperty    : 'id',
        remoteSort    : true,
        fields : [ 
            {name : 'id',   type : 'int'},
            {name : 'name', type : 'String'},
            {name : 'text', type : 'String'}
        ]
    });
    store.load();

    var TestReader = new Ext.data.JsonReader({  
        idProperty : 'id',
        fields     : [
            {name : 'id',   type : 'int'},
            {name : 'name', type : 'String'},
            {name : 'text', type : 'String'}
        ]
    });


    var TestStore = new Ext.data.GroupingStore({
        reader    : TestReader,
        data      : 'get_from_db.php',
        sortInfo  : {
            field     : 'id',
            direction : 'ASC'
        },
        groupField : 'name'
    });


    var TaskGrid = new Ext.grid.GridPanel({
        store   : TestStore,
        columns : [
            {id : 'id',   header : 'Id',   dataIndex : 'id'},
            {id : 'name', header : 'Name', dataIndex : 'name'},
            {id : 'text', header : 'Text', dataIndex : 'text'}
        ],

        view    : new Ext.grid.GroupingView({
            forceFit     : true,
            groupTextTpl : '{text} ({[values.rs.length]} {[values.rs.length > 1 ? "Items" : "Item"]})'
        }),

        frame        : true,
        width        : 700,
        height       : 450,
        collapsible  : true,
        animCollapse : false,
        title        : 'Grouping',
        renderTo     : document.body
    });
});

结果,输出网格没有任何错误,该组是 - 但这里是列值 - 全零

a simple table contains - id, name, text.
I need to bring these data in the grid with the grouping by the field name.
In all the examples that I found (for example - paper) uses the variable already defined the data. And I need to get data from Store.

ExtJs 3

The code:

    Ext.onReady(function() {
    var store = new Ext.data.JsonStore({
        url           : 'get_from_db.php',
        storeId       : 'MyStore',
        totalProperty : 'totalCount',
        idProperty    : 'id',
        remoteSort    : true,
        fields : [ 
            {name : 'id',   type : 'int'},
            {name : 'name', type : 'String'},
            {name : 'text', type : 'String'}
        ]
    });
    store.load();

    var TestReader = new Ext.data.JsonReader({  
        idProperty : 'id',
        fields     : [
            {name : 'id',   type : 'int'},
            {name : 'name', type : 'String'},
            {name : 'text', type : 'String'}
        ]
    });


    var TestStore = new Ext.data.GroupingStore({
        reader    : TestReader,
        data      : 'get_from_db.php',
        sortInfo  : {
            field     : 'id',
            direction : 'ASC'
        },
        groupField : 'name'
    });


    var TaskGrid = new Ext.grid.GridPanel({
        store   : TestStore,
        columns : [
            {id : 'id',   header : 'Id',   dataIndex : 'id'},
            {id : 'name', header : 'Name', dataIndex : 'name'},
            {id : 'text', header : 'Text', dataIndex : 'text'}
        ],

        view    : new Ext.grid.GroupingView({
            forceFit     : true,
            groupTextTpl : '{text} ({[values.rs.length]} {[values.rs.length > 1 ? "Items" : "Item"]})'
        }),

        frame        : true,
        width        : 700,
        height       : 450,
        collapsible  : true,
        animCollapse : false,
        title        : 'Grouping',
        renderTo     : document.body
    });
});

As a result, output grid without a single error, the group is - but here's the column values - all zeros

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

差↓一点笑了 2024-12-14 11:55:32

如果可以的话,请发布“get_from_db.php”的代码。

$connect = mysql_connect('localhost', 'root', ''); if ($connect) mysql_select_db('grid') 或 die('选择表错误'); $select = mysql_query("从测试中选择 *"); while ($rec = mysql_fetch_array($select)) $rows[] = $rec;回显 json_encode($rows);

您在返回 JSON 时犯了错误。反而

$rows[] = $rec;

你需要

$rows[] = array ("id"=>$rec['id'], "name"=>$rec['name'], "text"=>$rec['text' ]);

post the code of 'get_from_db.php', if you can, please.

$connect = mysql_connect('localhost', 'root', ''); if ($connect) mysql_select_db('grid') or die('error with select table'); $select = mysql_query("select * from test"); while ($rec = mysql_fetch_array($select)) $rows[] = $rec; echo json_encode($rows);

You made mistake in returning JSON. Instead

$rows[] = $rec;

you need

$rows[] = array ("id"=>$rec['id'], "name"=>$rec['name'], "text"=>$rec['text']);

菩提树下叶撕阳。 2024-12-14 11:55:32

决定。代码:

Ext.onReady(function() {
var TestStore = new Ext.data.GroupingStore({
    url         : 'http://extjs/get_from_db.php',
    autoLoad    : true,

    remoteGroup : true,
    groupField  : 'name',

    sortInfo : {
        field     : 'id',
        direction : 'ASC'
    },

    reader : new Ext.data.JsonReader({
        totalProperty : 'totalCount',
        root          : 'items',
        idProperty    : 'id',

        fields: [
            {name : 'id',   type : 'int'},
            {name : 'name', type : 'String'},
            {name : 'text' ,type : 'String'}
        ]
    })
});

var TaskGrid = new Ext.grid.GridPanel({
    store    : TestStore,
    colModel : new Ext.grid.ColumnModel({
        columns : [
            {id     : 'id',   header    : 'Id', dataIndex : 'id'},
            {header : 'Name', dataIndex : 'name'},
            {header : 'Text', dataIndex : 'text'}
        ],
        defaults : {
            sortable     : true,
            menuDisabled : false,
            width        : 20
        }
    }),

    view : new Ext.grid.GroupingView({
        startCollapsed : true,
        forceFit     : true,
        groupTextTpl : '{text} ({[values.rs.length]} {[values.rs.length > 1 ? "Items" : "Item"]})'
    }),

    frame        : true,
    width        : 700,
    height       : 450,
    collapsible  : true,
    animCollapse : false,
    title        : 'Grouping',
    renderTo     : document.body
    });
});

更多详细信息请参阅此注释

decided. code:

Ext.onReady(function() {
var TestStore = new Ext.data.GroupingStore({
    url         : 'http://extjs/get_from_db.php',
    autoLoad    : true,

    remoteGroup : true,
    groupField  : 'name',

    sortInfo : {
        field     : 'id',
        direction : 'ASC'
    },

    reader : new Ext.data.JsonReader({
        totalProperty : 'totalCount',
        root          : 'items',
        idProperty    : 'id',

        fields: [
            {name : 'id',   type : 'int'},
            {name : 'name', type : 'String'},
            {name : 'text' ,type : 'String'}
        ]
    })
});

var TaskGrid = new Ext.grid.GridPanel({
    store    : TestStore,
    colModel : new Ext.grid.ColumnModel({
        columns : [
            {id     : 'id',   header    : 'Id', dataIndex : 'id'},
            {header : 'Name', dataIndex : 'name'},
            {header : 'Text', dataIndex : 'text'}
        ],
        defaults : {
            sortable     : true,
            menuDisabled : false,
            width        : 20
        }
    }),

    view : new Ext.grid.GroupingView({
        startCollapsed : true,
        forceFit     : true,
        groupTextTpl : '{text} ({[values.rs.length]} {[values.rs.length > 1 ? "Items" : "Item"]})'
    }),

    frame        : true,
    width        : 700,
    height       : 450,
    collapsible  : true,
    animCollapse : false,
    title        : 'Grouping',
    renderTo     : document.body
    });
});

More details in this note

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文