2012-03-27 149 views
0

我使用剑道电网,但我有一个问题,我不能够到我的网绑定与web服务数据plz帮助我绑定剑道电网与web服务

我的Web服务这个样子的

[WebMethod] 
     public string GetCustomers() 
     { 
      string data = default(string); 
      using (var documentStore = new DocumentStore { Url = "http://haseeb-pc:8080/" }.Initialize()) 
      { 
       using (var session = documentStore.OpenSession()) 
       { 
        var query = session.Query<Customer>().Select(customer => new 
                       { 
                        FirstName = customer.FirstName, 
                        LastName = customer.LastName, 
                        Email = customer.Email, 
                       }).Take(20); 
        var serializer = new JavaScriptSerializer(); 
        return serializer.Serialize(query); 
       } 
      } 
     } 

和我有有一个div

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title></title> 
    <script src="../Scripts/jquery-1.7.min.js" type="text/javascript"></script> 
    <script src="../Scripts/KendoScript.js" type="text/javascript"></script> 
    <script src="../Scripts/KendoScripts/kendo.all.min.js" type="text/javascript"></script> 
    <link href="../Scripts/styles/kendo.common.min.css" rel="stylesheet" type="text/css" /> 
    <link href="../Scripts/styles/kendo.default.min.css" rel="stylesheet" type="text/css" /> 
    <script src="../Scripts/KendoScripts/kendo.web.min.js" type="text/javascript"></script> 
</head> 
<body> 
    <div id="CustomerGridView"> 
    </div> 
</body> 
</html> 

现在终于我的脚本文件,这是一个HTML页面:

$(function() { 
    alert("Welcome To Kendo"); 
    var dataSource = new kendo.data.DataSource(
      { 
       transport: { 
        read: { 
         contentType: "application/json; charset=utf-8", 
         type: "POST", 
         dataType: "json", 
         url: "/CustomerService.asmx/GetCustomers" 


        } 
       }, 
       pageSize: 10, 
       schema: { 
        data: "d" 
       } 
      }); 

    alert(dataSource); 
    $("#CustomerGridView").kendoGrid({ 
     dataSource: dataSource, 
     height: 250, 
     scrollable: true, 
     sortable: true, 
     pageable: true, 
     columns: [ 
     { field: "FirstName", title: "First Name" }, 
     { field: "LastName", title: "Last Name" }, 
     { field: "Email", title: "Email" } 


     ], 
     editable: "popup", 
     toolbar: ["create"] 
    }); 

}); 

我的问题是我的剑道电网不具约束力plz帮助我结合我网

+0

网格脚本包含了两次 - kendo.all.min.js和kendo.web。 min.js. – 2012-03-29 05:56:18

回答

0

尝试改变GetCustomers的返回类型为对象,而不是字符串,不返回“查询”的序列化版本。只需返回“查询”。

+0

什么都没有发生亲爱的仍然我的网格不绑定 – 2012-03-27 19:36:32

+0

当我打开萤火虫我看到这个错误{“消息”:“无效的JSON原语:采取.................... .... – 2012-03-27 19:37:54

+0

不知道这是否是问题,但我认为您需要在GetCustomers webmethod中的“Email = customer.Email”后面删除逗号。 – flayto 2012-03-30 13:13:06

0

你可以试试这个。

调用服务,使用var对象来存储服务内容。

var xhReq = new XMLHttpRequest(); 
xhReq.open("POST", '/CustomerService.asmx/GetCustomers', false); 
xhReq.send(null); 
var jsonObject = JSON.parse(xhReq.responseText); 

创建kendo数据源,使用var对象作为数据。

var dataSource = new kendo.data.DataSource({ 
         page: 1, 
         pageSize: 10, 
         data: jsonObject, 
         schema: { 
          model: { 
           id: "ID", // model id 
           fields: { 
            //FirstName: { type: "string", editable: false,/*other attributes*/ }, 
            /*your fields*/ 
           } 
          } 
         } 
       }); 

与剑道数据源

$("#CustomerGridView").kendoGrid({ 
     dataSource: dataSource, 
     height: 250, 
     scrollable: true, 
     sortable: true, 
     pageable: true, 
     columns: [ 
     { field: "FirstName", title: "First Name" }, 
     { field: "LastName", title: "Last Name" }, 
     { field: "Email", title: "Email" } 


     ], 
     editable: "popup", 
     toolbar: ["create"] 
    }); 

}); 

您kendogrid绑定我希望这可以帮助你:)