初始加载后通过调用 JsonResult 刷新 SlickGrid
Refresh SlickGrid via call to JsonResult after initial load
我已经设置了一个带有 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"});
您可以将筛选器按钮更改为 type="button"
,然后使用 GetData()
功能(不确定您是否已经实现)来重复提交表单并重新加载整个页面初始 $.getJSON
调用,将文本字段 txtShipper
的值作为参数
我已经设置了一个带有 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"});
您可以将筛选器按钮更改为 type="button"
,然后使用 GetData()
功能(不确定您是否已经实现)来重复提交表单并重新加载整个页面初始 $.getJSON
调用,将文本字段 txtShipper
的值作为参数