如何获取从数据库传递的列参数

时间:2013-02-16 12:44:50

标签: php jquery kendo-ui kendo-grid

我已经习惯使用KendoUI Grid插件了,但是我遇到了一个新的场景,我需要从我的数据库中获取column参数。

通常的设置是:

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
          }
        }
      }
    }
  }

1 个答案:

答案 0 :(得分: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
...

我过于复杂了。欢迎任何评论。