一起使用WCF数据服务和JQuery来支持CRUD

时间:2012-03-31 11:58:00

标签: jquery json odata wcf-data-services jaydata

WCF数据服务似乎将在Web应用程序中创建出色的可扩展性。我正在测试并使用它,如here所示。

我知道我可以在其他基于.NET的应用程序(Silverlight,WebForm,...)中使用WCF数据服务的结果。

是否有任何框架可以直接在HTML中使用(使用JQuery,...)?

例如,如果我想提交一个表单(Create,Update,Delete),我应该编写很多JS代码。但似乎可以更容易地定义所有内容。

this示例中,我应该写下面的块:

$("#btnAdd").click(function () {
    // Convert the form into an object
    var data = { Title: $("#title").val(), Director: $("#director").val() };

    // JSONify the data
    var data = JSON.stringify(data);

    // Post it
    $.ajax({
        type: "POST",
        contentType: "application/json; charset=utf-8",
        url: "MovieService.svc/Movies",
        data: data,
        dataType: "json",
        success: insertCallback
    });
});

function insertCallback(result) {
    // unwrap result
    var newMovie = result["d"];

    // Show primary key
    alert("Movie added with primary key " + newMovie.Id);
}

另一件事是查询数据:WCF数据服务支持ODATA查询签名,它很棒,但是有没有基于JQuery的网格可以支持基于ODATA的分页,排序,过滤,......?

所有网格都支持JSON远程数据,但我想直接使用WCF数据服务执行分页和排序。我的意思是网格根据用户操作创建URL并将其发送到WCF数据服务。

3 个答案:

答案 0 :(得分:2)

尝试datajs:http://datajs.codeplex.com/ 它可能无法解决上述所有问题,但它应该是一个良好的开端。

答案 1 :(得分:2)

'或者您甚至可以尝试构建在datajs之上的http://jaydata.codeplex.com并提供JavaScript语言查询功能以及http://jaydata.org/examples

中提供的一些非常基本的jqGrid示例

您的上述示例与JayData

相似
var movies = new MoviesContext(...);

$('#btnAdd').click(function() {
   var movie = new Movie( { Title: {} Director:{} });
   movies.add(movie);
   movies.saveChanges( function() {
     alert("Movie saved with id: " + movie.Id);
   })
});

还有couple of videos在线提供用法

答案 2 :(得分:1)

如果有商品,

Infragistics Grid

Kendo UI Grid

基于jQuery。