【问题标题】:How to select all rows in grid panel using ExtJS 4 without using checkbox?如何在不使用复选框的情况下使用 ExtJS 4 选择网格面板中的所有行?
【发布时间】:2013-08-05 17:07:38
【问题描述】:

我想从我的网格面板中选择所有行(记录)并将其存储到数据库中。我正在使用 ExtJS 4.1.3、JSP、servlet 和 MySql,我还想从我的数据库中获取所有数据并使用 jsp、servlet 在网格中显示它。我经历了许多教程,但这些解决方案对我不起作用。请帮忙。

【问题讨论】:

  • 那么,您已经在网格面板中有数据了吗?如果是这样,您可以使用 mystore.each(function(rec) { ... }); 遍历商店。并在函数中做任何你想做的事情。
  • 我在网格中输入数据并希望将其存储在数据库中。
  • 我想使用 Ext.Ajax.request() 方法将所有网格数据发送到 servlet。

标签: mysql jsp extjs


【解决方案1】:

您基本上只是要求从客户端到服务器端的应用程序设计 :)。让我们把问题分解成碎片:

假设您有一个更新 MySQL 数据库中数据的 rest-endpoint 设置。如果没有,您将不得不公开一个由 servlet 支持的 rest 调用,该调用基本上接受 HTTP 请求参数并将数据存储到您的表中,但我不打算详细讨论它,因为它是一个完全不同的讨论。

对于网格选择和更新问题,您需要先定义网格。正如我假设您有选择多个记录的用例。所以基本上,你必须用多行的选择模型来实例化一个 Grid ,像这样:

     var grid = new Ext.grid.GridPanel({
    store: new Ext.data.Store({
        autoDestroy: true,
        reader: reader,
        data: xg.dummyData
    }),
    colModel: new Ext.grid.ColumnModel({
        columns: [
            {header: '1',dataIndex:'1'},
            {header: '2', dataIndex: '2'},
        ]
    }),
    sm: new Ext.grid.RowSelectionModel({
        listeners:{
            rowselect: function(sm, row, rec) {
                Ext.Ajax.request({
                    url: 'foo.php',
                    success: someFn,
                    failure: otherFn,
                    params: { recToBeUpdated: rec }
                });
            }
        }
    }),
    width: 600,
    height: 300,
    frame: true,
    title: 'test',
});

可以参考官方文档here

【讨论】:

    猜你喜欢
    • 2011-04-25
    • 1970-01-01
    • 2011-01-26
    • 1970-01-01
    • 2020-07-16
    • 2019-07-27
    • 2015-01-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多