Привязка кендо грид с веб-сервисом - PullRequest
0 голосов
/ 27 марта 2012

Я использую кендо Grid, но у меня возникла проблема, связанная с тем, что я не могу связать свою сетку с данными из веб-сервиса. Пожалуйста, помогите мне

Мой веб-сервис выглядит так

[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);
                }
            }
        }

и у меня есть HTML-страница, которая имеет 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>

Теперь, наконец, мой файл сценария выглядит так:

$(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"]
    });

});

Моя проблема в том, что моя сетка кендо не является обязательной. Пожалуйста, помогите мне связать мою сетку

Ответы [ 3 ]

0 голосов
/ 01 апреля 2012

Вот проект, показывающий привязку Kendo Grid к сервису ASMX: https://github.com/telerik/kendo-examples-asp-net/tree/master/grid-web-service-crud

0 голосов
/ 12 сентября 2013

Вы можете попробовать это.

вызов службы, используйте объект var для хранения содержимого службы.

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

создать источник данных кендо, использовать объект 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"]
    });

});

Надеюсь, это поможет вам:)

0 голосов
/ 27 марта 2012

Попробуйте изменить тип возвращаемого значения GetCustomers на Object вместо String и не возвращать сериализованную версию «запроса».Просто верните «запрос».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...