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 回答