Обновите SlickGrid через вызов JsonResult после начальной загрузки - PullRequest
0 голосов
/ 03 апреля 2019

Я настроил веб-страницу MVC с помощью SlickGrid и могу заполнить ее при начальной загрузке страницы. Мой JavaScript для загрузки:

    $.getJSON("../Home/GetSlickGridData",
        function(data) {
            dataView.beginUpdate();
            //dataView.setItems(data);     
            dataView.setItems(data, "OrderID");
            dataView.setFilterArgs({
                searchString: searchString,
                searchShipmentID: searchShipmentID,
                searchDestination: searchDestination,
                searchCarrier: searchCarrier
            });
            dataView.setFilter(myFilter);
            dataView.endUpdate();
        });

Это вызывает действие контроллера:

public JsonResult GetSlickGridData()
        {

Теперь проблема в том, что я не уверен, как обновить сетку, когда критерии поиска добавляются в форму поиска на странице cshtml:

@using (Html.BeginForm("GetSlickGridData", "Home"))
{
    <table>
        <tr>
            <td>Shipper</td>
            <td><input type="text" name="myText" id="txtShipper" /></td>
            <td><input type="submit" value="Filter" onclick="GetData"></td>
        </tr>
    </table>
}

Можно ли использовать загрузку для начальной загрузки страницы и для поиска?

UPDATE:

На основании ответа @Steve T:

Поиск:

> <input type="text" name="myText" id="txtShipper" />
>     <input type="button" value="Filter" onclick="GetData()">

JQuery:

 function GetData() {

        Slick.GlobalEditorLock.cancelCurrentEdit();
        grid.invalidateAllRows();


        var searchText = $("#txtShipper").val();
        $.getJSON("../Home/GetSlickGridData?search=" + searchText,
            function (data) {

Контроллер:

  public JsonResult GetSlickGridData(string search)

И карта маршрута (для обеспечения работы контроллера):

 routes.MapRoute("search", "Home/GetSlickGridData/{search}",
                new {Controller = "Home", Action = "GetSlickGridData"});

1 Ответ

2 голосов
/ 04 апреля 2019

Вместо отправки формы и перезагрузки всей страницы вы можете изменить кнопку фильтра на type="button", а затем использовать функцию GetData() (не уверен, что это уже реализовано), чтобы повторить начальный вызов $.getJSON сзначение текстового поля txtShipper в качестве параметра

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