0

我正在尝试在表格中打印来自控制器的数据,但无法这样做。我正在使用 Kendo UItemplate进行打印。我附上下面的代码以及我得到的错误。

<div id="example"></div>

<script>

        $.ajax(
            {
                type: 'POST',
                url: '/default1/KendoDataAjaxHandle/',
                dataType: 'json',
                success: function (result) {


                    //Get the external template definition using a jQuery selector
                    var template = kendo.template($("#javascriptTemplate").html());

                    console.log(result);
                    var data = template(result); //Execute the template
                    $("#example").html(data); //Append the result

                }
            })

</script>

<script id="javascriptTemplate" type="text/x-kendo-template">

    <table>
        <thead>
            <tr>
                <th>Customer ID</th>
                <th>Customer name</th>
                <th>Gender</th>
            </tr>
        </thead>
        <tbody>
            # for (var i=0; i < result.length; i++){ #
            <tr>
                # for (var j=0; j < result[i].length; j++){ #
                <td>
                    #= result[j] #
                </td>
                # } #
            </tr>
            # } #
        </tbody>
    </table>

</script> 

我在上面的代码中所做的是对 action 方法进行 ajax 调用并以 JSON 格式获取结果。这是我的控制器方法:

public ActionResult KendoDataAjaxHandle([DataSourceRequest]DataSourceRequest request)
        {
            IQueryable<Customer> products = db.Customers;
            DataSourceResult result = products.ToDataSourceResult(request);
            return Json(result, JsonRequestBehavior.AllowGet);
        }

我在执行代码时遇到的错误是:结果未定义。然而,在对 ajax 调用后返回的结果进行安慰时,我得到了一个包含所有值的对象。

如何打印返回到表中的那些值?如果我在这里做错了什么,也请纠正我。预先感谢。

4

1 回答 1

1

尝试将模板内引用的变量名称从“结果”更改为“数据”,因为这是 Kendo 在其模板执行代码中使用的。

示例:http ://dojo.telerik.com/@Stephen/ENUze

更新示例 显示如何迭代对象的字段(基于评论): http ://dojo.telerik.com/@Stephen/oXOJU

注意:这假定字段按照您在评论中指定的顺序列出。如果字段未按此顺序返回,则必须添加代码以将字段名称映射到列索引,而不是盲目循环。

更新 2:

使用返回数据的确切格式更新示例:

http://dojo.telerik.com/@Stephen/ipeHec

注意:您必须以某种方式处理返回数据中但不在表中的 CustomerAltID。我的示例选择将其从要处理的键列表中删除。你如何处理它取决于你。

于 2016-12-21T14:33:33.413 回答