Asp.net mvc 3 添加条目后,WebGrid上的分页将停用

Asp.net mvc 3 添加条目后,WebGrid上的分页将停用,asp.net-mvc-3,webgrid,Asp.net Mvc 3,Webgrid,我使用带有分页的WebGrid和AJAX弹出窗口来添加新条目。我注意到,在我添加了一个条目之后,WebGrid底部的分页链接变得不活动 弹出窗口调用控制器的保存操作,该操作以以下内容结束: return PartialView("_PersonGrid", pModel.Persons); 这里使用三个视图。索引、网格和弹出窗口。网格嵌入在索引中,通过单击网格和索引上的按钮可以调用弹出窗口 索引视图具有以下代码: @using (Ajax.BeginForm(new AjaxOptions {

我使用带有分页的WebGrid和AJAX弹出窗口来添加新条目。我注意到,在我添加了一个条目之后,WebGrid底部的分页链接变得不活动

弹出窗口调用控制器的保存操作,该操作以以下内容结束:

return PartialView("_PersonGrid", pModel.Persons);
这里使用三个视图。索引、网格和弹出窗口。网格嵌入在索引中,通过单击网格和索引上的按钮可以调用弹出窗口

索引视图具有以下代码:

@using (Ajax.BeginForm(new AjaxOptions { InsertionMode = InsertionMode.Replace, UpdateTargetId = "myUserGrid" }))
{

<div id="myUserGrid">
    @Html.Partial("_PersonGrid", Model.Persons)
</div>
<br />

    //other code
}
当我第一次到达页面或刷新页面时,它们会再次激活。

我猜您的“ajaxUpdateContainerId:“myUserGrid”是一个id为=“myUserGrid”的div,并且部分内容会加载到其中。。如果我错了,请纠正我,但我相信div应该在你的部分中。有时候有点让人困惑,但你应该试试这个

视图:

部分观点:

@model IEnumerable<CIMsWebApp.Client.Group.Entities.IPerson>
<div id="myUserGrid">
    @{  var grid = new WebGrid(Model, canSort: true, canPage: true, defaultSort: "UserName", ajaxUpdateContainerId: "myUserGrid"); }    


    @grid.GetHtml(
        tableStyle: "dataGrid", 
        headerStyle: "header",
        alternatingRowStyle: "evenRow",
        columns: grid.Columns
        (
            grid.Column(header: "User Name", columnName: "UserName", format: item => Html.Raw("<a href='#' class='userNames' data-personid='"+item.PersonId+"'>" + item.UserName + "</a>"), canSort: false),
            grid.Column(header: "Role(s)", columnName: "Rolebuilder", canSort: false),
            grid.Column(header: "Active", columnName: "ActiveIndBuilder", canSort: false),
            grid.Column(header: "Action", format:
                                @<span><input type="button" class="edit-user" id="@item.PersonId" value="EDIT" />
                                </span>, canSort: false)
        )
    )
</div>
@model IEnumerable
@{var grid=new WebGrid(Model,canSort:true,canPage:true,defaultSort:“UserName”,ajaxUpdateContainerId:“myUserGrid”);}
@grid.GetHtml(
表样式:“数据网格”,
headerStyle:“header”,
交替行样式:“黄昏行”,
列:grid.columns
(
grid.Column(标题:“用户名”,列名:“用户名”,格式:item=>Html.Raw(“”),canSort:false),
grid.Column(标题:“角色”,列名:“Rolebuilder”,canSort:false),
grid.Column(标题:“Active”,列名:“ActiveIndBuilder”,canSort:false),
网格.列(标题:“操作”,格式:
@
,canSort:false)
)
)
如果这不起作用,请提供一些附加数据(调用分部的视图、调用保存操作的位置和方式等)。

我猜您的“ajaxUpdateContainerId:“myUserGrid”是一个id为=“myUserGrid”的div,分部加载在其中。。如果我错了,请纠正我,但我相信div应该在你的部分中。有时候有点让人困惑,但你应该试试这个

视图:

部分观点:

@model IEnumerable<CIMsWebApp.Client.Group.Entities.IPerson>
<div id="myUserGrid">
    @{  var grid = new WebGrid(Model, canSort: true, canPage: true, defaultSort: "UserName", ajaxUpdateContainerId: "myUserGrid"); }    


    @grid.GetHtml(
        tableStyle: "dataGrid", 
        headerStyle: "header",
        alternatingRowStyle: "evenRow",
        columns: grid.Columns
        (
            grid.Column(header: "User Name", columnName: "UserName", format: item => Html.Raw("<a href='#' class='userNames' data-personid='"+item.PersonId+"'>" + item.UserName + "</a>"), canSort: false),
            grid.Column(header: "Role(s)", columnName: "Rolebuilder", canSort: false),
            grid.Column(header: "Active", columnName: "ActiveIndBuilder", canSort: false),
            grid.Column(header: "Action", format:
                                @<span><input type="button" class="edit-user" id="@item.PersonId" value="EDIT" />
                                </span>, canSort: false)
        )
    )
</div>
@model IEnumerable
@{var grid=new WebGrid(Model,canSort:true,canPage:true,defaultSort:“UserName”,ajaxUpdateContainerId:“myUserGrid”);}
@grid.GetHtml(
表样式:“数据网格”,
headerStyle:“header”,
交替行样式:“黄昏行”,
列:grid.columns
(
grid.Column(标题:“用户名”,列名:“用户名”,格式:item=>Html.Raw(“”),canSort:false),
grid.Column(标题:“角色”,列名:“Rolebuilder”,canSort:false),
grid.Column(标题:“Active”,列名:“ActiveIndBuilder”,canSort:false),
网格.列(标题:“操作”,格式:
@
,canSort:false)
)
)

如果这不起作用,请提供一些附加数据(调用分部的视图、调用保存操作的位置和方式等)

在研究WebGrid分页的实际工作方式后,似乎在执行保存后,它会尝试调用save方法上的GET方法。为此我创建了一个方法,然后将其重定向回Index方法。最后两个参数直接传递给查询字符串,然后在分页中使用查询字符串

[ActionName("Save")]
public ActionResult Pagination(string page, string __, long id = 0)
{
  return RedirectToAction("Index", new {id = id, page=page, __ = __ }); 
} 

在研究WebGrid分页的实际工作方式之后,似乎在执行save之后,它会尝试调用save方法上的GET方法。为此我创建了一个方法,然后将其重定向回Index方法。最后两个参数直接传递给查询字符串,然后在分页中使用查询字符串

[ActionName("Save")]
public ActionResult Pagination(string page, string __, long id = 0)
{
  return RedirectToAction("Index", new {id = id, page=page, __ = __ }); 
} 

谢谢你的回复,但我不太明白你的解决方案。我在上面发布了更多的代码,希望能让它变得更清晰一点。我试着按照你的建议移动,但没有解决问题。更改后,分页仍然不起作用。感谢您的回复,但我并不真正理解您的解决方案。我在上面发布了更多的代码,希望能让它变得更清晰一点。我试着按照你的建议移动,但没有解决问题。更改后,分页仍不起作用。
[ActionName("Save")]
public ActionResult Pagination(string page, string __, long id = 0)
{
  return RedirectToAction("Index", new {id = id, page=page, __ = __ }); 
}