Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.net网站中的导航错误_Asp.net_Visual Studio 2008_Web - Fatal编程技术网

ASP.net网站中的导航错误

ASP.net网站中的导航错误,asp.net,visual-studio-2008,web,Asp.net,Visual Studio 2008,Web,我使用VisualStudio2008开发了一个网站。它使用活动索引从一页导航到下一页 当用户单击“下一步”按钮时,它将增加索引。根据增加的值,已导航下一页 第一页中有一个下拉列表,其中包含值(a、B、C、D) 通常,网站导航方式如下 第1页-->第2页-->第3页-->第4页等 但如果在第1页的下拉框中出现值“B”,则会导致以下流程 第1页-->第2页-->第4页 但问题是。。。网站的行为很奇怪。它给出了以下流程 对于下拉选择中的特定值选择(值“B”),将第1-->页第2-->页第3-->页第

我使用VisualStudio2008开发了一个网站。它使用活动索引从一页导航到下一页

当用户单击“下一步”按钮时,它将增加索引。根据增加的值,已导航下一页

第一页中有一个下拉列表,其中包含值(a、B、C、D)

通常,网站导航方式如下

第1页-->第2页-->第3页-->第4页等

但如果在第1页的下拉框中出现值“B”,则会导致以下流程

第1页-->第2页-->第4页

但问题是。。。网站的行为很奇怪。它给出了以下流程

对于下拉选择中的特定值选择(值“B”),将第1-->页第2-->页第3-->页第4页替换为第1-->页第2-->页第4页

当用户转到最后一页时,使用“后退”按钮再次转到前面,使用“下一步”按钮转到最后一页时,就会发生此问题。(导致此问题的多次迭代)

这里我需要两件事:

  • 为什么会这样
  • 如何防止这种情况
  • 我已给出以下代码:

    提前谢谢你的帮助

    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
    
    如果您发布了ASelected()、BSelected()、CSelected()和ddl_view0_WULValue(),则会有更大的帮助。如果没有这些,我无法真正确定发生这种情况的原因。我的猜测是因为web应用程序中缺少状态。当您尝试在页面代码中设置变量时,对象仅在一次回发期间保留(在本例中,单击按钮)。下次单击按钮时,页面的私有变量中的所有数据都将消失

    但是,在回发之间,下拉列表的状态将保持不变,因此您可以直接查询下拉列表以了解所选内容。我将其更改为
    ddl\u view0.SelectedValue=“B”

    我假设这就是您的aspx页面的外观。请注意ListItem上使用的文本和值属性。我们将在代码中使用值属性来查找所选内容

    <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>
    
    我不知道strRoleType的作用是什么,但这可能也无法正常工作。如果无法正常工作,请尝试在窗体上删除HiddenField控件,并使用该控件存储值。

    如果发布了ASelected()、BSelected()、CSelected()和ddl_view0_WULValue()这会有更大的帮助。如果没有这一点,我就无法真正确定它发生的原因。我的猜测是因为web应用程序中缺少状态。当您尝试在页面代码中设置变量时,对象只会在一次回发期间停留(在本例中,单击按钮)。下次单击按钮时,页面的私有变量中的所有数据都将消失

    但是,在回发之间,下拉列表的状态将保持不变,因此您可以直接查询下拉列表以了解所选内容。我将其更改为
    ddl\u view0.SelectedValue=“B”

    我假设这就是您的aspx页面的外观。请注意ListItem上使用的文本和值属性。我们将在代码中使用值属性来查找所选内容

    <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>
    

    我不知道strRoleType的作用是什么,但这可能也不能正常工作。如果不能,请尝试在窗体上删除HiddenField控件,并使用该控件存储值。

    是否也可以发布aspx文件