powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Kendo
13 сообщений из 13, страница 1 из 1
Kendo
    #39191683
Активист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пытаюсь заюзать ихний грид $("#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
Kendo
    #39192704
Активист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как соединить этот c... грид с web api?
...
Рейтинг: 0 / 0
Kendo
    #39192707
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нафиг такие гриды без документации. В топку.
...
Рейтинг: 0 / 0
Kendo
    #39192715
Активист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AxeleronНафиг такие гриды без документации. В топку.это грид от Телерика и документации к нему навалом. хочется замутить свой бекэнд, чтобы за грид не платить $1000 баксов. да и мне руководство не даст.
...
Рейтинг: 0 / 0
Kendo
    #39192719
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АктивистAxeleronНафиг такие гриды без документации. В топку.это грид от Телерика и документации к нему навалом. хочется замутить свой бекэнд, чтобы за грид не платить $1000 баксов. да и мне руководство не даст.
А... Ясно все тогда.
...
Рейтинг: 0 / 0
Kendo
    #39192996
Andrey1306
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Активисткак соединить этот 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
Kendo
    #39193681
Активист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey1306,

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

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

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

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

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

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

а чё там инжинирить, POST/PUT/DELETE дли вебапи, или POST-ы к соответствующим экшенам в MVC ?
...
Рейтинг: 0 / 0
Kendo
    #39195758
Активист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите, как вернуть из 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
Kendo
    #39195773
Активист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно вернуть json как-то так...

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


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