0

私はとても簡単な質問をしましたが、答え (ドキュメント) が見つかりません。MySQLデータベースから情報を取得する Grid を作成しました。Ext JS 4.2を使用しています。スクリプトを見てみましょう...

Ext.define("AppStore",{
    extend: "Ext.data.Model",
    fields: [
        {name: "nickname" , type: "auto"},
        {name: "email"    , type: "auto"}
    ]
});

var store = Ext.create("Ext.data.Store",{
    model: "AppStore",
    proxy: {
        type: "ajax",
        api: {
            read    : "./read.php",
            update  : "./update.php"
        },
        reader: {
            type: "json",
            root: ""
        },
        writer: {
            type: "json",
            writeAllFields: true,
            encode: false,
            root: ""
        }
    },
    listeners: {
        read: function(operation, callback, scope){

        },
        update: function(operation, callback, scope){
            // Do I have to do something from here ?
        }
    },
    autoLoad: true
});

Ext.create("Ext.grid.Panel",{
    store: store,
    selMode: "cellmodel",
    columns: [
        {
            text: "Nickname",
            flex: 1,
            dataIndex: "nickname",
            editor: {
                xtype: "textfield",
                allowBlank: false
            }
        },
        {
            text: "Email",
            flex: 1.5,
            dataIndex: "email",
            editor: {
                xtype: "textfield",
                allowBlank: false
            }
        }
    ],
    plugins: [
        Ext.create("Ext.grid.plugin.CellEditing",{
            clicksToEdit: 2
        })
    ]
});

グリッドセルでデータを変更した後、データを更新するためにMySQLにリクエストを送信する方法に興味があります。例、ドキュメント、またはこのタスクを達成する方法を教えてください。ありがとう...

4

1 に答える 1

1

通常、モデルの変更をサーバーに永続化するために、グリッドのストアでsync()を呼び出す必要があります。これは、すべての編集で自動的に発生するように構成できます (ストアのautoSync プロパティを参照してください)。ただし、特定のアクション (たとえば、[保存] ボタンのクリックなど) に基づいて sync() 呼び出しを処理することをお勧めします。

于 2013-05-27T19:21:34.820 に答える