English 中文(简体)
ASP.net网站的导航错误
原标题:Navigation error in ASP.net website
  • 时间:2009-10-02 15:01:53
  •  标签:

我利用视觉演播室开发了一个网站。 后者使用积极指数,从一页到下页。

当用户点击下一个纽顿时,它将进一步削减指数。 根据增益值,下页已升值。

第1页的数值有所下降(A、B、C、D)。

通常,网站浏览方式如下:

页: 1->page2-->Page3->Page4等。

但是,如果将“B”价值放在第1页的倒数箱中,造成以下流动。

页: 1->page2-->Page4

但是,问题在于......网站是奇怪的。 流动情况如下。

Page1-->page2-->Page3-->Page4 instead of 页: 1->page2-->Page4 for that particular value selection (value "B") in drop down selection.

这个问题正在出现,用户在最后一页再次使用 back子进入前线,然后使用“next”进入最后一页。 (造成这一问题的多种因素)

这里需要两点:

  1. Why it is occurring?
  2. How to prevent this

我已提出以下准则:

事先得到帮助

Protected Sub btn_view1_back_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btn_view1_back.Click, btn_view2_back.Click, btn_view3_back.Click
      Try
          Dim currentView As Int16
          currentView = mvRequestorForm.ActiveViewIndex
          If currentView = 3 And BSelected() = 1 Then
              mvRequestorForm.ActiveViewIndex = (currentView - 2)
          Else
              mvRequestorForm.ActiveViewIndex = (currentView - 1)
          End If

          If mvRequestorForm.ActiveViewIndex = 1 Then
              If (ddl_view0_WULValue() = 0) Then
                   C 
                  CSelected() = 1
                  strRoleType = "chkBx_C_workunit"
              ElseIf (ddl_view0_WULValue() = 1) Then
                   head office 
                  ASelected() = 1
                  strRoleType = "chkBx_A_workunit"
              ElseIf (ddl_view0_WULValue() = 2) Then
                   B 
                  BSelected() = 1
                  strRoleType = "chkBx_B_workunit"
              ElseIf (ddl_view0_WULValue() = 3) Then
                   B 
                  BSelected() = 1
                  strRoleType = "chkBx_B_workunit"
              End If
          End If

      Catch ex As Exception

      End Try
End Sub

《下顿法典》如下:

Protected Sub btn_View0_Next_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btn_View0_Next.Click, btn_View1_Next.Click, btn_view2_Next.Click

    Try
        Dim currentView As Int16
        currentView = mvRequestorForm.ActiveViewIndex
        If currentView = 1 And BSelected = 1 Then
            mvRequestorForm.ActiveViewIndex = (currentView + 2)
            rfv_view2_managersEmail.Enabled = True
            rev_view2_managersEmail.Enabled = True
        Else
            mvRequestorForm.ActiveViewIndex = (currentView + 1)
        End If

        If mvRequestorForm.ActiveViewIndex = 1 Then
            Sub_ActivateView1()
        End If

    Catch ex As Exception

    End Try
End Sub
最佳回答

如果你上任AS当选,BS当选,CS 当选,and ddl_view0_WULValue, 这将有助于更多人。 如果没有这一点,我就能够真正确定:why? 我的猜测是由于网络应用缺乏国家。 当你试图在后面的页码中设定变量时,物体只停留在该单次回击期间(在这种情况下,点击)。 下一次会点击,你网页上的所有数据都将输入私人变量。

然而,下级名单的下降状况将在退席之间保持,因此,你可以直接向下级名单查询,以找出所选择的内容。 I ve改为dl_view0。 数值=“B”

我假定,这是你的百页。 通知清单系统中文本和价值特性的使用。 我们利用该法典中的价值财产来寻找选择的东西。

<asp:MultiView runat="server" ID="mvRequestorForm" ActiveViewIndex="0"
    <asp:View ID="View1" runat="server">
        1
        <asp:DropDownList ID="ddl_view0" runat="server">
            <asp:ListItem Text="Item A" Value="A"></asp:ListItem>
            <asp:ListItem Text="Item B" Value="B"></asp:ListItem>
            <asp:ListItem Text="Item C" Value="C"></asp:ListItem>
            <asp:ListItem Text="Item D" Value="D"></asp:ListItem>
        </asp:DropDownList>
        <asp:Button ID="btn_View0_Next" runat="server" Text="Next" />
    </asp:View>
    <asp:View ID="View2" runat="server">
        2
        <asp:Button ID="btn_View1_Next" runat="server" Text="Next" />
        <asp:Button ID="btn_view1_back" runat="server" Text="Back" />
    </asp:View>
    <asp:View ID="View3" runat="server">
        3
        <asp:Button ID="btn_view2_Next" runat="server" Text="Next" />
        <asp:Button ID="btn_view2_back" runat="server" Text="Back" />
    </asp:View>
    <asp:View ID="View4" runat="server">
        4
        <asp:Button ID="btn_view3_back" runat="server" Text="Back" />
    </asp:View>
</asp:MultiView>

我先修改了你的法典,以便删除所有当选的AS(AS)、BS(S)当选、欧安会当选和dll_view0_WULValue(WULValue)电话,并直接使用下级名单。

Protected Sub btn_view1_back_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btn_view1_back.Click, btn_view2_back.Click, btn_view3_back.Click
     Try 

    If mvRequestorForm.ActiveViewIndex = 3 And ddl_view0.SelectedValue = "B" Then  CHANGED to use the SelectedValue property of the dropdownlist because it keeps state properly 
        mvRequestorForm.ActiveViewIndex -= 2  CHANGED to a cleaner way to decrement by 2 
    Else
        mvRequestorForm.ActiveViewIndex -= 1  CHANGED to a cleaner way to decrement by 1 
    End If

    If mvRequestorForm.ActiveViewIndex = 1 Then  NOTE: This is now at least one less than when the method started. Is this what you really wanted? 

        If (ddl_view0.SelectedValue = "C") Then  CHANGED to use the SelectedValue property of the dropdownlist because it keeps state properly 
            strRoleType = "chkBx_C_workunit"

        ElseIf (ddl_view0.SelectedValue = "A") Then  CHANGED to use the SelectedValue property of the dropdownlist because it keeps state properly 
            strRoleType = "chkBx_A_workunit"

        ElseIf (ddl_view0.SelectedValue = "B") Then  CHANGED to use the SelectedValue property of the dropdownlist because it keeps state properly 
            strRoleType = "chkBx_B_workunit"

        End If
         NOTE: There seemed to be a duplicate case for "B" here, so I removed it 

    End If
     Catch ex As Exception 
     Commented out Try/Catch because empty catches hide bugs and make development harder 
     End Try 
End Sub

Protected Sub btn_View0_Next_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btn_View0_Next.Click, btn_View1_Next.Click, btn_view2_Next.Click
     Try 
    If mvRequestorForm.ActiveViewIndex = 1 And ddl_view0.SelectedValue = "B" Then
        mvRequestorForm.ActiveViewIndex += 2  CHANGED to a cleaner way to increment by 2 
        rfv_view2_managersEmail.Enabled = True
        rev_view2_managersEmail.Enabled = True
    Else
        mvRequestorForm.ActiveViewIndex += 1  CHANGED to a cleaner way to increment by 1 
    End If

    If mvRequestorForm.ActiveViewIndex = 1 Then  NOTE: This is now at least one more than when the method started. Is this what you really wanted? 
         Sub_ActivateView1() 
    End If
     Catch ex As Exception 
     Commented out Try/Catch because empty catches hide bugs and make development harder 
     End Try 
End Sub

我不了解什么情况。 角色选择是正确的,但可能还是正确打赢。 如果是,试图放弃对你的形式的隐蔽实地控制,并利用这种控制储存价值。

问题回答

暂无回答




相关问题