【问题标题】:Why doesn't the gridview persist the checkbox values between pagination?为什么gridview不保留分页之间的复选框值?
【发布时间】:2020-10-13 09:48:34
【问题描述】:

我正在尝试在分页之间存储复选框值,因此如果我从一页转到另一页并返回,选中的复选框将持续存在。

Protected Sub gv_InforWO_PageIndexChanging(sender As Object, e As GridViewPageEventArgs)
       Try
            gv_InforWO.PageIndex = e.NewPageIndex

            If chkFiltersAvailable.Checked = False Then
                chkSelectAll.Checked = False
                BindGridInfoWO()
                'btnSync_Click(Nothing, Nothing)
            Else

                BindGridInfoWO()
                ' btnSync_Click(Nothing, Nothing)
            End If

            'checkbox persistence code
            Dim d As Integer = gv_InforWO.PageCount
            Dim values() As Boolean = New Boolean((gv_InforWO.PageSize) - 1) {}
            Dim chb As CheckBox
            Dim count As Integer = 0
            Dim i As Integer = 0
            Do While (i < gv_InforWO.Rows.Count)
                chb = CType(gv_InforWO.Rows(i).FindControl("chkSelect"), CheckBox)
                If (Not (chb) Is Nothing) Then
                    values(i) = chb.Checked
                End If

                i = (i + 1)
            Loop

            Session(("page" + CType(gv_InforWO.PageIndex, String))) = values


        Catch ex As Exception
             lblWaitingMsg.Text= ex.Message 
        End Try
    End Sub

预渲染时

Protected Sub gv_InforWO_PreRender(sender As Object, e As EventArgs)
        Try
            If (Not (Session(("page" + CType(gv_InforWO.PageIndex, String)))) Is Nothing) Then
                Dim chb As CheckBox
                Dim values() As Boolean = CType(Session(("page" + CType(gv_InforWO.PageIndex, String))), Boolean())
                Dim i As Integer = 0
                Do While (i < gv_InforWO.Rows.Count)
                    chb = CType(gv_InforWO.Rows(i).FindControl("chkSelect"), CheckBox)
                    chb.Checked = values(i)
                    i = (i + 1)
                Loop

            End If
        Catch ex As Exception

        End Try
       
    End Sub

但即使我勾选框,它也不会保留该值并且为 false。

【问题讨论】:

    标签: asp.net vb.net checkbox gridview webforms


    【解决方案1】:

    如果您的复选框数据绑定到某个东西,我的猜测是您需要更新 PageIndexChanging 上的源数据以使其持续存在,或者如果您要像在代码中一样将值存储在会话中例如,更新那些值 OnRowDataBound 而不是在整个网格的预渲染时。

    【讨论】:

      猜你喜欢
      • 2012-04-23
      • 1970-01-01
      • 2017-01-27
      • 2015-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-06
      • 1970-01-01
      相关资源
      最近更新 更多