当用户从ASP.NET中的下拉列表中选择时,重定向到新页面

时间:2013-06-04 20:53:01

标签: asp.net vb.net drop-down-menu

我创建了一个带有下拉列表的asp.net Web应用程序(VB),该下拉列表包含服务器上页面的URL列表。我是asp和VB的新手。我研究了不同的解决方案论坛,并决定要求我解决问题。

分解。 - 我有一个完整的页面 - 此页面每两小时归档到一个存档文件夹(使用vbs) - 使用文件名和URL生成XML文件(使用VBS) - XMl是DDL的数据源。

我想要完成的是,当用户点击DDL中的某个项目时,应该将它们定向到该页面。

在听完了其他论坛和其他论坛的一些建议后,似乎没有任何效果。

一旦我们深入了解这一点,我们就会更好地理解任何困惑。

  • 代码隐藏是VB,所以我会喜欢这种语言。

ASPX页面

enter code here

<%@ Page Title="Home" Language="vb" MasterPageFile="~/Site.Master"     AutoEventWireup="false"CodeBehind="Default.aspx.vb" Inherits="Status._Default" %>     <asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent"></asp:Content><asp:Content ID="BodyContent"runat="server" ContentPlaceHolderID="MainContent"></asp:Content>


<asp:XmlDataSource ID="statsXML" 
    runat="server" DataFile="~/Archive/Stats.xml" 
    XPath="Elements/Element" /> 
<asp:DropDownList ID="DropDownList1" runat="server" 
     DataSourceID="statsXML"
     DataTextField="Name" 
     DataValueField="Value" 
     AutoPostBack="True" 
     CssClass="rightCol"  />
<br />
<p>

    <asp:Table ID="Table1" runat="server" GridLines="Horizontal" Width="100%">
        <asp:TableRow BorderWidth="1" BorderStyle="Solid" Font-Size="12">
            <asp:TableCell HorizontalAlign="Center" Text="Text here" BorderStyle="Solid" BorderWidth="0"
                ForeColor="White" BackColor="#006699"></asp:TableCell>
        </asp:TableRow>
        <asp:TableRow BorderWidth="1" BorderStyle="Solid" Font-Size="12">
            <asp:TableCell HorizontalAlign="Center" Text="Text here" BorderStyle="Solid"
                BorderWidth="0" ForeColor="White" BackColor="#006699"></asp:TableCell>
        </asp:TableRow>
    </asp:Table>
    <br />
</p>
<asp:Table ID="Table2" runat="server" GridLines="both" Width="100%" BorderColor="Black">
    <asp:TableRow BorderWidth="1" BorderStyle="Solid" Font-Size="12" BorderColor="Black">
        <asp:TableCell Width="50%" HorizontalAlign="Center" Text="Enviroment" BorderStyle="Solid" BorderWidth="1"
            ForeColor="White" BackColor="#006699" BorderColor="Black"></asp:TableCell>
        <asp:TableCell Width="50%" HorizontalAlign="Center" Text="State" BorderStyle="Solid"
            BorderWidth="1" ForeColor="White" BackColor="#006699" BorderColor="Black"></asp:TableCell>
    </asp:TableRow>
        </asp:Table>`

代码隐藏

Public Class webform
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        'If Not Page.IsPostBack Then

        'End If
        'If Page.IsPostBack Then
        '    ' Response.Redirect(Me.DropDownList1.SelectedValue)
        ' End If
    End Sub

    Protected Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object, 
                                                     ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged    

        Response.Redirect(DropDownList1.SelectedItem.Value)

    End Sub

End Class

2 个答案:

答案 0 :(得分:0)

您要做的是先在AutoPostback上将True设置为DropDownList

<asp:DropDownList ID="myDropDownlist" runat="server" AutoPostback="True" />

之后,您应该能够处理代码隐藏中SelectedIndexChanged的{​​{1}}事件

DropDownList

答案 1 :(得分:0)

试试这个

 Public Class WebForm1
        Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    End Sub

    Private Sub DropDownList1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DropDownList1.SelectedIndexChanged
        Response.Redirect(DropDownList1.SelectedItem.Text)
    End Sub
 End Class