【问题标题】:State is not retaining in checkbox状态未保留在复选框中
【发布时间】:2009-09-09 00:57:28
【问题描述】:

我的网络表单中有一个复选框。每当我勾选它..并单击后退按钮时,它不会保留其状态..当我使用下一个按钮返回同一页面时。

注意:控件中启用视图状态

页面加载事件中没有代码

代码如下:

Protected Sub chkBx_SR_wu_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles chkBx_SR_wu.SelectedIndexChanged
    Dim i As Integer
    i = 0
    Try
        For i = 0 To chkBx_SR_wu.Items.Count - 1
            If chkBx_SR_wu.Items(i).Selected Then
                Select Case chkBx_SR_wu.Items(i).Value
                    Case "SR_MR"
                        chkbx_SR.Checked = True
                    Case "Sk_MR"
                        chkbx_SkRoom.Checked = True
                    Case "SC_SS"
                        chkbx_admin.Checked = True
                    Case "CS_MR"
                        chkbx_salesFloor.Checked = True
                    Case "TEAM_LEADER"
                        rb_tl.Enabled = True
                        chkbx_tlAdmin.Enabled = True
                        chkbx_tlJewellery.Enabled = True
                        chkbx_tlSalesFloor.Enabled = True
                        chkbx_tlSkRoom.Enabled = True
                        rb_tl.Items(0).Enabled = True
                        rb_tl.Items(1).Enabled = True
                        rb_tl.Items(2).Enabled = True
                        rb_tl.Items(3).Enabled = True
                        ReqiredFieldValidator1.Enabled = True



                End Select
            Else
                Select Case chkBx_SR_wu.Items(i).Value
                    Case "SR_MR"
                        chkbx_SR.Enabled = False
                        chkbx_SR.Checked = False
                    Case "Sk_MR"
                        chkbx_SkRoom.Enabled = False
                        chkbx_SkRoom.Checked = False
                    Case "SC_SS"
                        chkbx_admin.Enabled = False
                        chkbx_admin.Checked = False
                    Case "CS_MR"
                        chkbx_salesFloor.Enabled = False
                        chkbx_salesFloor.Checked = False
                    Case "TEAM_LEADER"
                        chkbx_tlAdmin.Enabled = False
                        chkbx_tlAdmin.Checked = False
                        chkbx_tlJewellery.Enabled = False
                        chkbx_tlJewellery.Checked = False
                        chkbx_tlSalesFloor.Enabled = False
                        chkbx_tlSalesFloor.Checked = False
                        chkbx_tlSkRoom.Enabled = False
                        chkbx_tlSkRoom.Checked = False
                        rb_tl.Items(0).Enabled = False
                        rb_tl.Items(1).Enabled = False
                        rb_tl.Items(2).Enabled = False
                        rb_tl.Items(3).Enabled = False
                        ReqiredFieldValidator1.Enabled = False
                End Select
            End If
        Next

    Catch ex As Exception

    End Try
End Sub"

【问题讨论】:

  • 如果您没有将表单发布到服务器,这不是视图状态案例。
  • 那怎么办呢。
  • 此外,当我单击“下一步”按钮到新页面时,会保留复出状态。但是当我点击后退按钮并进入相同的页面状态时不会保留

标签: .net asp.net vb.net web checkbox


【解决方案1】:

复选框不使用 ViewState 来保留其状态 - 它们使用 HTTP POST 有效负载的内容来确定是否将控件设置为 Checked

如果您需要在正常的回发周期之外保留此值,则需要将其存储在会话中或在该时间段之后仍能存活的类似位置。

【讨论】:

  • 你能解释一下......如何在会话中存储它?
  • 如果可以,请发布您的一些代码,以便我可以帮助您创建适合您的解决方案。
  • 上面已经给出了代码..请看
  • 此外,当我单击“下一步”按钮到新页面时,会保留复出状态。但是当我点击后退按钮并进入相同的页面状态时不会保留
猜你喜欢
  • 2022-01-17
  • 2016-10-13
  • 2020-06-11
  • 2017-02-27
  • 1970-01-01
  • 2016-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多