本文参考 Code.msdn的例子,在此基础上实现了一个参考例子,代码放在了:
如果想在Asp.net MVC应用以JavaScript中访问WCF Data Service服务,以下是使用Microsoft AJAX Library库进行处理的例子
var dataContext;
var queryObject, queryObject1;
Sys.require([Sys.components.dataView, Sys.components.adoNetDataContext]);
//DOM加载完成后执行
Sys.onReady(function () {
dataContext = Sys.create.adoNetDataContext(
{
serviceUri: "/Services/NorthwindService.svc",
mergeOption: Sys.Data.MergeOption.appendOnly
});
dataContext.initialize();
queryObject = new Sys.Data.AdoNetQueryBuilder("Customers");
queryObject.set_orderby("ContactName"); //$orderby
queryObject.set_filter("City eq " + "'London'"); // $filter
queryObject.set_expand("Orders"); //$expand
queryObject1 = new Sys.Data.AdoNetQueryBuilder("Customers");
queryObject1.set_filter("startswith(CompanyName, 'A')");
});
<body xmlns:dataview="javascript:Sys.UI.DataView" xmlns:sys="javascript:Sys">
<table> <tr class="tableHeader"> <td> ID </td> <td> Name </td> <td> Contact </td> <td> # Orders </td> </tr> <tbody sys:attach="dataview" class="sys-template" dataview:dataprovider="{{ dataContext }}" dataview:fetchoperation="{{ queryObject.toString() }}" dataview:autofetch="true"> <tr> <td> {{ CustomerID }} </td> <td> {{ CompanyName }} </td> <td> {{ ContactName }} </td> <td> {{ Orders.length }} </td> </tr> </tbody> </table>
以上的代码效果在下图的上部分。
上图是包含:表格显示、查询、主从表三种场景的演示,可见MS AJAX的客户端脚本库功能很强大。
当面的表格显示如果定制可以使用CSS控制,当然也有很多的框架库,如Jquery中的jqGrid
如果和Asp.net集成,可以使用jqMvcGrid