无法在网格中打印数据

时间:2016-12-21 13:52:24

标签: c# jquery ajax asp.net-mvc kendo-ui-grid

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

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

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

var attempts=0;
var $code="youknowme";

$('.go').on('click',function(){

    if($('#pass').val()===$code){
        window.open("3.html");
    }else{
        alert("wrong code");
        attempts=attempts+1;
    }   

    /* code is now executed each time the click event occurs */
    if(attempts===2){
        alert("You have last chance left");
    }
    else if(attempts===3){
        window.close();
    }

});

我执行代码的错误是:结果未定义。但是,在调用ajax调用后返回的结果时,我得到一个具有所有值的对象。

如何打印表中的值?如果我在这里做错了,请纠正我。提前谢谢。

1 个答案:

答案 0 :(得分:1)

尝试更改模板中引用的变量名称&#34; result&#34;到&#34;数据&#34;这就是剑道在其模板执行代码中使用的内容。

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

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

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

更新2:

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

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

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