gpt4 book ai didi

ajax - MVC3 WebGrid 在使用过滤器排序或分页后消失

转载 作者:行者123 更新时间:2023-12-01 01:19:15 28 4
gpt4 key购买 nike

我遇到了与此相同的问题 question .

我创建了一个应该与 WebGrid 一起工作的过滤器。过滤器适用于第一页,但如果您尝试转到其他页面或对结果进行排序,则过滤器将丢失。我按照上一个问题中的建议将方法更改为 GET,但目标并未更新,而是从页面中消失了。

div“网格”内的网格调用:

var grid = new WebGrid(Model, ajaxUpdateContainerId: "Grid", rowsPerPage: 20);

过滤形式:
@using (Ajax.BeginForm("Action", new { filter = "filter" }, new AjaxOptions { InsertionMode = InsertionMode.Replace, UpdateTargetId = "Grid", HttpMethod = "Get" }))

如果在 Action 中设置了“过滤器”,我将返回网格的 PartialView 而不是完整的 View。

Firebug 向我展示了在响应中发送了正确的 HTML,但无论出于何种原因,它都没有插入到 Grid div 中。

任何建议,将不胜感激!

编辑:我目前的解决方法是使用 HTML 表单而不是 AJAX,但如果可能的话,我想坚持使用 AJAX。

最佳答案

我得到了这个问题的解决方案,我在我的 Webgrid 周围有一个 div,如下所示:

索引.cshtml:

<div class="grid-container">
<div id="my-grid">
@Html.Partial("_Grid", Model)
</div>
</div>

_Grid.cshtml:
@{

var grid = new WebGrid(null,
canSort: true,
rowsPerPage: 20,
ajaxUpdateContainerId: "my-grid");

grid.Bind(Model.Models, autoSortAndPage: true, rowCount: Model.TotalModelCount);
}
[...]

在我的列表中排序时,根据过滤结果,Webgrid 消失并且没有插入到 my-grid-div 中。但是,当我将周围的“我的网格”放在局部 View 中时,它起作用了。我不明白为什么,但它现在有效。

索引.cshtml:
<div class="grid-container">
@Html.Partial("_Grid", Model)
</div>

_Grid.cshtml:
<div id="my-grid">
@{

var grid = new WebGrid(null,
canSort: true,
rowsPerPage: 20,
ajaxUpdateContainerId: "my-grid");

grid.Bind(Model.Models, autoSortAndPage: true, rowCount: Model.TotalModelCount);
}
[...]
</div>

关于ajax - MVC3 WebGrid 在使用过滤器排序或分页后消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10254084/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com