0

KendoUI Grid プラグインの使用にはかなり慣れていますが、データベースから列パラメーターを取得する必要があるという新しいシナリオに出くわしました。

通常のセットアップは次のとおりです。

columns:
  [
  {
    field: "username",
    width: 247,
    title: "Name"
  },
  {
    field: "branch",
    width: 50,
    title: "Branch",
  }...

これらのパラメータを PHP スクリプトで決定する必要があります。

dataSource パラメータで設定する必要があるものはありますか? もしそうなら、例を教えてください。

参考までに、私の dataSource パラメータは次のとおりです。

dataSource: {
    serverPaging: true,
    serverSorting: true,
    pageSize: 5,
    transport: {
      read: {
        url: ROOT+"user/user-list",
      },
      update: {
        url: ROOT+"user/update-user",
        type: "POST",
        data: function(data)
        {
          data.DoB = kendo.toString(data.DoB, 'yyyy-MM-dd') ;
          data.dateStarted = kendo.toString(data.dateStarted, 'yyyy-MM-dd') ;
          return data;
        }
      }
    },
    error: function(e) {
      alert(e.errorThrown+"\n"+e.status+"\n"+e.xhr.responseText) ;
    },
    schema: {
      data: "data",
      total: "rowcount",
      model: {
        id: 'id',
        fields: {
          username: {
            type: "string", 
            editable: true
          },
          type: {
            type: "string",
            editable: true,
            validation: {
              required: true
            }
          },
          level: {
            type: "string",
            editable: true,
            validation: {
              required: true
            }
          },
          firstName: {
            type: "string", 
            editable: true
          },
          middleName: {
            type: "string", 
            editable: true
          },
          lastName: {
            type: "string", 
            editable: true
          },
          DoB: {
            type: "date", 
            editable: true, 
            format: "{0:yyyy/MM/dd}"
          },
          dateStarted: {
            type: "date", 
            editable: true, 
            format: "{0:dd/MM/yyyy}"
          },
          enabled: {
            type: "boolean", 
            editable: true
          }
        }
      }
    }
  }
4

1 に答える 1

0

$.ajax を使用して変数に JSON 形式の列データを入力することで、これを実行できることに気付きました。

たとえば、グリッドを初期化する前に次を呼び出します。

var columnData ;
$.ajax({
url: myDataSource,
type: 'POST',
success: function(data){
columnData = data ; // In the form of [{field: "username",width: 247,title: "Job #"}]
})
})

次にグリッドで:

...
columns: columnData
...

私は物事を複雑にしすぎていました。どんなコメントでも大歓迎です。

于 2013-02-16T12:55:09.840 に答える