Другой заголовок и название кнопки обновления для всплывающего окна «Добавить и изменить» в Kendo UI Grid (Telerik 2018) - PullRequest
0 голосов
/ 16 января 2019

Q1: так как «Добавить новую запись» и «Редактировать всплывающий заголовок» совпадают с «Редактировать» (демонстрационный URL Telerik: https://demos.telerik.com/aspnet-mvc/grid/editing-popup), пробовал код, указанный ниже, чтобы изменить заголовок.

$(".k-grid-edit").on("click", function () {
    $(".k-window-title").text("Edit");
    $(".k-grid-update").text("Update");
    console.log("Edit");
});
$(".k-grid-add").on("click", function () {
    $(".k-window-title").text("Create");
    $(".k-grid-update").text("Save");
    console.log("New");
});

Консоль записывает соответствующий текст, но не обновляет текст заголовка и кнопку Обновить.

Q2: добавление и редактирование вызовов Web API. Даже после успешного вызова появляется всплывающее окно, которое не перезагружает сетку.

using (var client = new HttpClient())
{
    client.BaseAddress = new Uri(ConfigurationManager.AppSettings["KpiApiUrl"]);
    var postTask = client.PostAsJsonAsync("users", userAccess);
    postTask.Wait();

    var result = postTask.Result;
    if (result.IsSuccessStatusCode)
    {
        var readTask = result.Content.ReadAsStringAsync();
        readTask.Wait();
        if (readTask.Result.Trim('"').Equals("Success"))
        {
            RouteValueDictionary routeValues = this.GridRouteValues();
            return RedirectToAction("GetUsers", routeValues);
        }
    }
    return View("GetUsers", LoadUser());
}

Пожалуйста, сообщите мне об этом.

Version Info Telerik 2018.1.221.545 MVC 5.2 .NET 4.6

1 Ответ

0 голосов
/ 16 января 2019

Самый простой способ сделать это - привязать событие редактирования сетки, и это позволит вам с легкостью изменить заголовок.

Я предоставил додзё, показывающее, как это сделать. https://dojo.telerik.com/anoceSux

Я просто обратился к «модели» редактируемого элемента, и если он считается новым, то изменим заголовок, чтобы создать, или иначе мы знаем, что это элемент, который существует, и поэтому просто поместите редактирование с названием продукта в заголовке ,

Что касается того, что ваш API не перезагружает сетку с новыми данными, это потому, что вы возвращаете view из его внешнего вида, а не ожидаемый JSON объект, который ищет сетка в виде Объект DataRequestResult или каким бы образом вы не отобразили свои данные. Предполагая, что вы отправляете / привязываете объект DataSourceRequest к контроллеру API, вы должны возвращать что-то вроде этого:

public JsonResult SomeAction([DataSourceRequest] DataSourceRequest request, T Model){
 ..do some things here....... 
 return Json(model.ToDataSourceResult(request, ModelState)); 

}

где T - ваша модель элемента, который обновляется / создается

Если что-то отсутствует или нуждается в расширении, дайте мне знать, и я соответствующим образом обновлю ответ.

...