Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Kendo / 13 сообщений из 13, страница 1 из 1
14.03.2016, 18:43
    #39191683
Активист
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Kendo
Пытаюсь заюзать ихний грид $("#grid").kendoGrid(). Kendo - чистый JS. Никаких хелперов под mvc - нету. Поэтому пытаюсь прикрутить это к Web API. Заполнение грида - сделал. Метод контроллера возвращает обычный json. А вот create/update/delete не знаю какие сигнатуры оно хочет. При вызове соотв. методов огребаем http-404. Вот такая колбаса передается в метод. Подкажите - как?

Код: plaintext
 http://localhost:56793/api/UpdateCustomer?callback=jQuery1102021012524963924772_1457742842714&models=%5B%7B%22CustomerID%22%3A%22ALFKI%22%2C%22CompanyName%22%3A%22Alfreds+Futterkist%22%2C%22ContactName%22%3A%22Maria+Anders11%22%2C%22ContactTitle%22%3A%22Sales+Representative%22%2C%22Address%22%3A%22Obere+Str.+57%22%2C%22City%22%3A%22Berlin2%22%2C%22Region%22%3Anull%2C%22PostalCode%22%3A%2212209%22%2C%22Country%22%3A%22Germany%22%2C%22Phone%22%3A%22030-0074321%22%2C%22Fax%22%3A%22030-0076545%22%7D%5D&_=1457742842715]http://localhost:56793/api/UpdateCustomer?callback=jQuery1102021012524963924772_1457742842714&models=[{"CustomerID":"ALFKI","CompanyName":"Alfreds Futterkist","ContactName":"Maria Anders11","ContactTitle":"Sales Representative","Address":"Obere Str. 57","City":"Berlin2","Region":null,"PostalCode":"12209","Country":"Germany","Phone":"030-0074321","Fax":"030-0076545"}]&_=1457742842715 
...
Рейтинг: 0 / 0
15.03.2016, 20:03
    #39192704
Активист
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Kendo
как соединить этот c... грид с web api?
...
Рейтинг: 0 / 0
15.03.2016, 20:07
    #39192707
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Kendo
Нафиг такие гриды без документации. В топку.
...
Рейтинг: 0 / 0
15.03.2016, 20:16
    #39192715
Активист
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Kendo
AxeleronНафиг такие гриды без документации. В топку.это грид от Телерика и документации к нему навалом. хочется замутить свой бекэнд, чтобы за грид не платить $1000 баксов. да и мне руководство не даст.
...
Рейтинг: 0 / 0
15.03.2016, 20:22
    #39192719
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Kendo
АктивистAxeleronНафиг такие гриды без документации. В топку.это грид от Телерика и документации к нему навалом. хочется замутить свой бекэнд, чтобы за грид не платить $1000 баксов. да и мне руководство не даст.
А... Ясно все тогда.
...
Рейтинг: 0 / 0
16.03.2016, 10:34
    #39192996
Andrey1306
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Kendo
Активисткак соединить этот c... грид с web api?


используем кендо. с одной стороны удобно с другой проклятая вещь...


вот_так
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
grid

<div class="fixedInnerTableHead"
                                         kendo-grid="kgNotification"
                                         k-data-source="NotificationDS"
                                         k-options="optNotificationGrid()">
                                        <span class="table-info-empty hide">{{ 'Нет записей для отображения'|translate }}</span>

                                    </div>





Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
  /*Notification Begin*/
        var initNotificationView = function () {
            var dsSettings = {
                transport: {
                    type: 'odata',
                    read: function (options) {
                        $scope.loading(false, 'Loading');
                        var odataParams = $scope.getOdataParams(options);
                        notificationService.getNotification(odataParams, filterParams).then(function (result) {
                            options.success(result);
                            $(".schedulerWrap .k-scheduler-toolbar>ul li:first-child .k-link").html($filter('translate')('Today'));
                        });
                    }
                },

                serverPaging: true,
                serverSorting: true,
                serverFiltering: true,
                pageable: true,
                pageSize: 10,
                sort: { field: "createDate", dir: "desc" },
                schema: {
                    data: function (data) {

                        return data.items;
                    },

                    total: "count",
                    model: {
                        id: "id", notificationType: "notificationType", param: "param",
                        fields: {
                            title: { editable: false, nullable: false, type: "string" },
                            createDate: { editable: false, nullable: false, type: "date" },
                            text: { editable: false, nullable: false, type: "string" },
                            notificationType: { editable: false, nullable: false, type: "string" },
                            //  param: { nullable: false, editable: false },
                            // NotificationType: { nullable: false, editable: false }
                        },

                    }
                }
            }

            $scope.NotificationDS = new kendo.data.DataSource(dsSettings);

            $scope.statusesImgClasses = uiHelper.statusesOrderResponseImgClasses;

            $scope.optNotificationGrid = function () {
                return {
                    pageable: true,
                    columns: [{ "field": "title", "title": $filter('translate')('Название') },
                              { "field": "createDate", "title": $filter('translate')("Дата сообщения"), "template": "#= kendo.toString(createDate, \"g\") #" },
                              { "field": "text", "title": $filter('translate')("Документ") },
                              { "field": "companyFromName", "title": $filter('translate')("Отправитель") },
                              { "field": "companyToName", "title": $filter('translate')("Получатель") },
                             // { "field": "notificationType", "title": $filter('translate')("Сумма заказа"), template: "{{dataItem.notificationType}}" },
                             //{ "field": "statusText", "title": $filter('translate')("Статус"), template: '<strong><span class="{{::statusesClasses[dataItem.NotificationType]}}">{{::dataItem.Text}}</a></strong>' },
                            //{ "field": "canRejectAndConfirm", "title": "canRejectAndConfirm" },
                            //{ "field": "isChange", "title": " ", template: '<div class="img-status {{statusesImgClasses[dataItem.status]}}" title="{{::buyerStatusTitle}} - {{::dataItem.buyerStatusText}}"></div>' },
                              {
                                  command:
                                    [
                                         {
                                             name: "showWindowP",
                                             template: '<a class="k-grid-showWindowP imgbut" title="{{\'Детально\' | translate}}"><img src="/Content/images/icons/but_icons_popap.gif"></a>',
                                             click: showWindowP,
                                         },

                                          {
                                              name: "setRead",
                                              template: '<a ng-if="dataItem.isRead==false" class="k-grid-setRead imgbut" title="{{\'Пометить как прочитанное\' | translate}}"><img src="/Content/images/icons/but-confirm.png"></a>',
                                              click: setRead,
                                          },

                                    ]

                              },
                    ]
                }
            };






        }();



...
Рейтинг: 0 / 0
16.03.2016, 18:14
    #39193681
Активист
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Kendo
Andrey1306,

Друк, а что с бекэндом? Это Web API или проприетарный Кенду? В вашем примере бекенд не озвучен.
...
Рейтинг: 0 / 0
16.03.2016, 18:22
    #39193692
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Kendo
АктивистAndrey1306,

Друк, а что с бекэндом? Это Web API или проприетарный Кенду? В вашем примере бекенд не озвучен.

какая разница вообще? кенде по барабану чё там, вебапи или пхп какой? даже обёртки для mvc/webapi надо дотачивать напильником. до сих пор DateTimeOffset не хавает. в чём вопрос? как данные в вебапи подготовить?

сигнатуры все в доках, обычные сигнатуры такие.
...
Рейтинг: 0 / 0
16.03.2016, 18:32
    #39193702
Активист
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Kendo
hVostt,

методы webapi не вызываются, http-404. если знаете как оформить Update/Create/Destroy БЕЗ сборок Kendo, то подскажите. загрузка данных в грид работает.
...
Рейтинг: 0 / 0
16.03.2016, 22:25
    #39193873
Активист
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Kendo
ALL,

вообщем разобрался. пореверс-инжинерил немнго на живом продукте. обращайтесь кому надо =)
...
Рейтинг: 0 / 0
17.03.2016, 06:54
    #39193996
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Kendo
Активист,

а чё там инжинирить, POST/PUT/DELETE дли вебапи, или POST-ы к соответствующим экшенам в MVC ?
...
Рейтинг: 0 / 0
18.03.2016, 19:36
    #39195758
Активист
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Kendo
Подскажите, как вернуть из webapi контроллера, как показано в первом варианте. У меня получается, как во втором пока. Мой код.
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
    public class ProductData
    {
        public IQueryable<Product> Data;
        public int Total;
    }

        // GET: api/Products
        public IList<ProductData> GetProducts(int page, int pageSize)
        {
            //dt.prods = db.Products.OrderBy(p => p.ProductID).Skip((page - 1) * pageSize).Take(pageSize);
            ProductData[] products = new ProductData[] 
            { 
                new ProductData { Data=db.Products.OrderBy(p => p.ProductID).Skip((page - 1) * pageSize).Take(pageSize), Total=db.Products.Count()   }
            };
            return products;
        }


Код: plaintext
1.
2.
3.
4.
5.
1.
{"Data":[{"ProductID":11,"ProductName":"Queso Cabrales","SupplierID":5,"CategoryID":4,"QuantityPerUnit":"1 kg pkg.","UnitPrice":21.00,"UnitsInStock":22,"UnitsOnOrder":30,"ReorderLevel":30,"Discontinued":false},{"ProductID":12,"ProductName":"Queso Manchego La Pastora","SupplierID":5,"CategoryID":4,"QuantityPerUnit":"10 - 500 g pkgs.","UnitPrice":38.00,"UnitsInStock":86,"UnitsOnOrder":0,"ReorderLevel":0,"Discontinued":false},{"ProductID":13,"ProductName":"Konbu","SupplierID":6,"CategoryID":8,"QuantityPerUnit":"2 kg box","UnitPrice":6.00,"UnitsInStock":24,"UnitsOnOrder":0,"ReorderLevel":5,"Discontinued":false},{"ProductID":14,"ProductName":"Tofu","SupplierID":6,"CategoryID":7,"QuantityPerUnit":"40 - 100 g pkgs.","UnitPrice":23.25,"UnitsInStock":35,"UnitsOnOrder":0,"ReorderLevel":0,"Discontinued":false},{"ProductID":15,"ProductName":"Genen Shouyu","SupplierID":6,"CategoryID":2,"QuantityPerUnit":"24 - 250 ml bottles","UnitPrice":15.50,"UnitsInStock":39,"UnitsOnOrder":0,"ReorderLevel":5,"Discontinued":false},{"ProductID":16,"ProductName":"Pavlova","SupplierID":7,"CategoryID":3,"QuantityPerUnit":"32 - 500 g boxes","UnitPrice":17.45,"UnitsInStock":29,"UnitsOnOrder":0,"ReorderLevel":10,"Discontinued":false},{"ProductID":17,"ProductName":"Alice Mutton","SupplierID":7,"CategoryID":6,"QuantityPerUnit":"20 - 1 kg tins","UnitPrice":39.00,"UnitsInStock":0,"UnitsOnOrder":0,"ReorderLevel":0,"Discontinued":true},{"ProductID":18,"ProductName":"Carnarvon Tigers","SupplierID":7,"CategoryID":8,"QuantityPerUnit":"16 kg pkg.","UnitPrice":62.50,"UnitsInStock":42,"UnitsOnOrder":0,"ReorderLevel":0,"Discontinued":false},{"ProductID":19,"ProductName":"Teatime Chocolate Biscuits","SupplierID":8,"CategoryID":3,"QuantityPerUnit":"10 boxes x 12 pieces","UnitPrice":9.20,"UnitsInStock":25,"UnitsOnOrder":0,"ReorderLevel":5,"Discontinued":false},{"ProductID":20,"ProductName":"Sir Rodney's Marmalade","SupplierID":8,"CategoryID":3,"QuantityPerUnit":"30 gift boxes","UnitPrice":81.00,"UnitsInStock":40,"UnitsOnOrder":0,"ReorderLevel":0,"Discontinued":false}],"Total":77,"AggregateResults":null,"Errors":null}

2.
[{"Data":[{"ProductID":1,"ProductName":"Chai","SupplierID":1,"CategoryID":1,"QuantityPerUnit":"10 boxes x 20 bags","UnitPrice":18.0000,"UnitsInStock":39,"UnitsOnOrder":0,"ReorderLevel":10,"Discontinued":false},{"ProductID":2,"ProductName":"Chang","SupplierID":1,"CategoryID":1,"QuantityPerUnit":"24 - 12 oz bottles","UnitPrice":19.0000,"UnitsInStock":17,"UnitsOnOrder":40,"ReorderLevel":25,"Discontinued":false},{"ProductID":3,"ProductName":"Aniseed Syrup","SupplierID":1,"CategoryID":2,"QuantityPerUnit":"12 - 550 ml bottles","UnitPrice":10.0000,"UnitsInStock":13,"UnitsOnOrder":70,"ReorderLevel":25,"Discontinued":false},{"ProductID":4,"ProductName":"Chef Anton's Cajun Seasoning","SupplierID":2,"CategoryID":2,"QuantityPerUnit":"48 - 6 oz jars","UnitPrice":22.0000,"UnitsInStock":53,"UnitsOnOrder":0,"ReorderLevel":0,"Discontinued":false},{"ProductID":5,"ProductName":"Chef Anton's Gumbo Mix","SupplierID":2,"CategoryID":2,"QuantityPerUnit":"36 boxes","UnitPrice":21.3500,"UnitsInStock":0,"UnitsOnOrder":0,"ReorderLevel":0,"Discontinued":true}],"Total":78}]
...
Рейтинг: 0 / 0
18.03.2016, 19:54
    #39195773
Активист
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Kendo
Нужно вернуть json как-то так...

Код: c#
1.
2.
3.
4.
{
    "Products" : [ { /*...*/}, { /*...*/} .... ],
    "Total": 100
}
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Kendo / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]