我正在尝试在表格中打印来自控制器的数据,但无法这样做。我正在使用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调用后返回的结果时,我得到一个具有所有值的对象。
如何打印表中的值?如果我在这里做错了,请纠正我。提前谢谢。
答案 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。我的示例选择将其从要处理的键列表中删除。你如何处理它取决于你。