2012-03-27 144 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綁定我希望這可以幫助你:)