KendoGrid JavaScript运行时错误:模板无效

rip*_*sin 5 javascript sql json kendo-ui kendo-grid

试图找出剑道世界,并将网格设置为json数组数据源.

Error is "JavaScript runtime error: Invalid template: <tr
data-uid="#=data.uid#" role='row'><td  role='gridcell'>#=data.Account
Num==null?'':data.Account Num#</td>...".
Run Code Online (Sandbox Code Playgroud)

我注意到在这个错误中我看到空值,想知道这是否意味着数据没有绑定?

我看到列标题,但不是任何行.我还必须提一下,我的数据中没有任何ID字段,因为我正在使用SQL视图中的临时表.

function populateGrid(search) {
    $("#grdAttributes").kendoGrid({
        dataSource: {
            transport: {
                read: {
                    url: "http://127.0.0.2:6080/arcgis/rest/services/WW/WW2/MapServer/exts/RestSOE/Search%20Query?columnName=" + search.columnName + "&operand=" + search.operand + "&searchVal=" + search.searchVal + "&f=",
                    dataType: "json",
                    type: 'GET'
                }
            },
        },
        serverPaging: true,
        serverSorting: true,
        serverFiltering: true,
        scrollable: true,
        height: 150

    });
    $("#grdAttributes").data().kendoGrid.dataSource.view()
};
Run Code Online (Sandbox Code Playgroud)

如果我继续VS2012中的错误,我会看到网格中的列标题.只是没有行数据.(示例JSON下面:)

 -[{
     -"Address": "PO BOX 20",
     -"City": "HAVENWOOD",
     -"Location": "",
     -"Name 1": "UNIVERSITY",
     -"Name 2": "",
     -"Street": "NEY AVE",
     -"Street Num": "16",
     -"Legacy ROD Num": null - "Repeat Client": "Y" -
 }, ...
Run Code Online (Sandbox Code Playgroud)

这是错误的开始:

`Unhandled exception at line 11, column 6788 in
http://--------:51392/WW/js/kendo.web.min.js 0x800a139e - JavaScript
runtime error: Invalid template:'<tr data-uid="#=data.uid#"
role='row'><td  role='gridcell'>#=data.Account
Num==null?'':data.Account Num#</td><td 
role='gridcell'>#=data.address==null?'':data.address#</td><td 
role='gridcell'>#=data.Arb Location==null?'':data.Location#</td><td 
role='gridcell'>#=data.WNum==null?'':data.Num#</td><td`
Run Code Online (Sandbox Code Playgroud)

希望这足以获得一些反馈.[敲我的头].提前致谢!

Ron*_*kal 9

很难说完全,但看起来生成的模板有问题,因为您的数据字段名称中有空格,例如:

'帐户号码',并且在模板中它试图访问"data.Account Num",这当然不会起作用.

将数据设置为没有空格,以查看实际上是否存在问题.如果是问题,另一个解决方案(如果你想保留空格)将手动输入列而不是让它自动生成它.

......处理空间:

首先使用以下字段设置数据源方案:

schema: {
    data: "Data",
    model: {
        fields: {
            "Name": { type: "string" },
            "Account Num": { type: "string" }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后对于您的列,使用模板定义它们,如下所示:

columns: [
   {
      field: "Name",
      title: "Name",
      template: "#=data['Name']==null?'':data['Name']#"
   },
   {
      field: "Account Num",
      title: "Account Num",
      template: "#=data['Account Num']==null?'':data['Account Num']#"
   }
]
Run Code Online (Sandbox Code Playgroud)

你最初拥有的是kendo尝试生成模板本身,但它试图访问

data.Account Num
Run Code Online (Sandbox Code Playgroud)

这当然不适用于javascript,因此您可以手动定义每列的模板来代替访问

data['Account Num']
Run Code Online (Sandbox Code Playgroud)

这将正常工作,并希望得到你正在寻找的结果.

  • 因此,当我在办公室里跳舞时,我的妻子才笑了!我手动添加了几列,数据出现了!十分感谢!我现在必须转动数据然后连接树视图.因此,您对他们的任何建议或提示都会受到好评.再次感谢. (2认同)