Asp.net mvc 4 在grid.mvc中维护复选框的值

Asp.net mvc 4 在grid.mvc中维护复选框的值,asp.net-mvc-4,grid,Asp.net Mvc 4,Grid,我正在MVC4中开发一个应用程序,其中我有一个grid.mvc向用户显示一些数据,其中有一个带有复选框的字段。问题是,当他们使用分页时,复选框的值是干净的,并且不保持值true。有什么解决这个问题的建议吗? 谢谢。谢谢您的支持,下面是我的看法 <div class="container-fluid table-responsive"> @Html.Grid(Model).Named("grdParticipantes").Columns(columns =&g

我正在MVC4中开发一个应用程序,其中我有一个grid.mvc向用户显示一些数据,其中有一个带有复选框的字段。问题是,当他们使用分页时,复选框的值是干净的,并且不保持值true。有什么解决这个问题的建议吗?
谢谢。

谢谢您的支持,下面是我的看法

<div class="container-fluid table-responsive">
            @Html.Grid(Model).Named("grdParticipantes").Columns(columns =>
            {
                columns.Add().Titled("Seleccionar").Encoded(false).Sanitized(false).SetWidth(45).RenderValueAs(p => @Html.CheckBox("ckbPersona_" + Convert.ToString(p.IdPersona), new {}));
                columns.Add(p => p.NombrePersona).Titled(IdiomaDirectorio.lblParticipante).Sortable(true).Filterable(true);
                columns.Add(p => p.Equipo).Titled(IdiomaDirectorio.lblEquipo).Sortable(true).Filterable(true);
            }).WithPaging(3).WithMultipleFilters()
        </div>

@Html.Grid(Model).Named(“GRDPParticipantes”).Columns(Columns=>
{
columns.Add().Titled(“selecciator”).Encoded(false).Sanitized(false).SetWidth(45).RenderValueAs(p=>@Html.CheckBox(“ckbPersona_389;”+Convert.ToString(p.IdPersona),new{});
columns.Add(p=>p.NombrePersona).Titled(idiomadirectio.lblParticipante).Sortable(true).Filterable(true);
columns.Add(p=>p.Equipo).标题为(idiomadirectio.lblEquipo).可排序(true).可过滤(true);
}).WithPaging(3).WithMultipleFilters()

感谢您的支持,下面是我的看法

<div class="container-fluid table-responsive">
            @Html.Grid(Model).Named("grdParticipantes").Columns(columns =>
            {
                columns.Add().Titled("Seleccionar").Encoded(false).Sanitized(false).SetWidth(45).RenderValueAs(p => @Html.CheckBox("ckbPersona_" + Convert.ToString(p.IdPersona), new {}));
                columns.Add(p => p.NombrePersona).Titled(IdiomaDirectorio.lblParticipante).Sortable(true).Filterable(true);
                columns.Add(p => p.Equipo).Titled(IdiomaDirectorio.lblEquipo).Sortable(true).Filterable(true);
            }).WithPaging(3).WithMultipleFilters()
        </div>

@Html.Grid(Model).Named(“GRDPParticipantes”).Columns(Columns=>
{
columns.Add().Titled(“selecciator”).Encoded(false).Sanitized(false).SetWidth(45).RenderValueAs(p=>@Html.CheckBox(“ckbPersona_389;”+Convert.ToString(p.IdPersona),new{});
columns.Add(p=>p.NombrePersona).Titled(idiomadirectio.lblParticipante).Sortable(true).Filterable(true);
columns.Add(p=>p.Equipo).标题为(idiomadirectio.lblEquipo).可排序(true).可过滤(true);
}).WithPaging(3).WithMultipleFilters()

我不是肯定的,所以您必须尝试一下,因为我现在无法测试它,但我很确定您的问题在于您在哪里创建了复选框:

@Html.CheckBox("ckbPersona_" + Convert.ToString(p.IdPersona), new {})
每次用户使用分页时,页面都会重新加载以提取下一组数据。因此,每次发生这种情况时,您的复选框都由上述代码设置。我从您那里复制的那行代码没有将复选框设置为选中,因此默认情况下它将被取消选中。这就是为什么,即使您的用户选中了该框,当他们翻页时,该框也会被取消选中

您需要做的是设置某种变量来跟踪是否选中该框。您需要在分页时将此变量传递给视图,以便在加载新页面时,可以选中或不选中该框,具体取决于用户在上一页上所做的操作。创建长方体时,代码如下所示:

@Html.CheckBox("ckbPersona_" + Convert.ToString(p.IdPersona), new { @checked = yourVariableHere })

有关此情况下的选项的有用讨论,请参阅

我不是阳性,所以您必须尝试一下,因为我现在无法测试它,但我很确定您的问题在于您在哪里创建了复选框:

@Html.CheckBox("ckbPersona_" + Convert.ToString(p.IdPersona), new {})
每次用户使用分页时,页面都会重新加载以提取下一组数据。因此,每次发生这种情况时,您的复选框都由上述代码设置。我从您那里复制的那行代码没有将复选框设置为选中,因此默认情况下它将被取消选中。这就是为什么,即使您的用户选中了该框,当他们翻页时,该框也会被取消选中

您需要做的是设置某种变量来跟踪是否选中该框。您需要在分页时将此变量传递给视图,以便在加载新页面时,可以选中或不选中该框,具体取决于用户在上一页上所做的操作。创建长方体时,代码如下所示:

@Html.CheckBox("ckbPersona_" + Convert.ToString(p.IdPersona), new { @checked = yourVariableHere })

有关此情况下的选项的有用讨论,请参阅

是否正在重置页面加载上复选框的值?如果是这样,您将不得不添加一些代码,仅当他们最初访问页面时才这样做,而不是分页。如果您展示一些代码,我可能会有更好的想法/能够详细阐述一下。感谢您的支持您是否重置页面加载上复选框的值?如果是这样,您将不得不添加一些代码,仅当他们最初访问页面时才这样做,而不是分页。如果你展示你的一些代码,我可能会有更好的想法/能够详细阐述一点。感谢你的支持请接受我对你的问题提出的编辑;附加代码应放在原始问题中,而不是作为答案。请接受我对您的问题提出的编辑;附加代码应放在原始问题中,而不是作为答案。