初始加载后,通过调用JsonResult刷新SlickGrid

问题描述 投票:0回答:1

我已经设置了一个带有SlickGrid的MVC网页,并且可以在初始页面加载时填充它。我的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>
}

我可以使用加载来进行初始页面加载和搜索吗?

更新:

根据@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"});
json asp.net-mvc slickgrid
1个回答
2
投票

您可以将过滤器按钮更改为type="button",然后使用GetData()函数(不确定是否已经实现)来重复初始$.getJSON调用,使用文本字段txtShipper的值作为参数,而不是提交表单并重新加载整个页面

© www.soinside.com 2019 - 2024. All rights reserved.