如何使用 Kendo UI 将参数传递给 HttpHandler?
Posted
技术标签:
【中文标题】如何使用 Kendo UI 将参数传递给 HttpHandler?【英文标题】:How do you pass parameters to an HttpHandler using Kendo UI? 【发布时间】:2012-02-29 11:32:55 【问题描述】:我对 jQuery AJAX 非常熟悉,并且一直在使用它。 Kendo UI 建立在 jQuery 之上,并使用 AJAX。使用 jQuery 与 HttpHandler 交互和传递参数很容易,您只需执行以下操作:
使用 JQUERY AJAX:
$.ajax(
complete: self.onComplete,
data: SiteId: 777 , // <--- this gets appended to the post
dataType: 'json',
error: self.onError,
success: self.onSuccess,
url: self.url
);
我的问题:
我正在尝试找到data
(上图)的 KendoUI 等价调用。
剑道密码看起来像:
<script type="text/javascript">
$(document).ready(function ()
var dataSource = new kendo.data.DataSource(
transport:
read:
url: "Handlers/Attempt1Synch.ashx",
dataType: "json",
contentType: "application/json; charset=utf-8",
type: "POST",
data: SiteId: 777
// parameterMap: function (data, operation)
// return JSON.stringify(data);
//
,
schema: data: "People"
);
$("#grid").kendoGrid(
height: 360,
width: 500,
dataSource: dataSource,
groupable: true,
scrollable: true,
sortable: true,
pageable: true,
columns:
[
field: "Id",
width: 0
,
field: "FirstName",
width: 90,
title: "First Name"
,
field: "LastName",
width: 90,
title: "Last Name"
,
width: 100,
field: "City"
,
field: "Title"
,
field: "BirthDate",
title: "Birth Date",
template: '#= kendo.toString(BirthDate,"dd MMMM yyyy") #'
,
width: 50,
field: "Age"
]
);
);
</script>
<div id="grid">
</div>
我的 HTTP 处理程序看起来像:
public class Attempt1Synch : IHttpHandler
public void ProcessRequest(HttpContext context)
var siteId = Convert.ToInt32(context.Request["SiteId"]);
var serializer = new JavaScriptSerializer();
var response = mock(siteId);
context.Response.ContentType = "text/json";
context.Response.Write(serializer.Serialize(response));
context.Response.End();
public bool IsReusable
get
return false;
【问题讨论】:
【参考方案1】:我发现这是他们之前版本中的一个已知问题。 The newest release fixes this。因此,您必须首先下载最新版本的KendoUI
,如下所示:
V1 2011 SP1(版本 2011.3.1407)- 2012 年 2 月 - 请参阅“OData 不提交用户定义的参数”
但是,上面的代码也存在问题。代码应完全省略POST
命令。
新的数据源应如下所示:
只有DataSource
对象不正确。新的应该是这样的 -
var dataSource = new kendo.data.DataSource(
transport:
read:
url: "Handlers/Attempt1Synch.ashx",
dataType: "json",
contentType: "application/json; charset=utf-8",
data: SiteId: 777
,
schema: data: "People"
);
【讨论】:
感谢简洁的回答。您是否推荐任何有关 Kendo UI 的博客或教程。我发现 Telerik 的文档和示例缺乏。 不,很抱歉我不得不使用“反复试验”来解决这个问题。是的,Telerik 的文档网站确实很烂。以上是关于如何使用 Kendo UI 将参数传递给 HttpHandler?的主要内容,如果未能解决你的问题,请参考以下文章
Kendo UI - 将参数传递给read()中的JS函数.data()