0

.aspx 代码:

<form id="form1" runat="server">
    <div>
        <asp:DropDownList ID="DropDownList1" runat="server">
            <asp:ListItem value="">About Us</asp:ListItem>
            <asp:ListItem Value="1">Contact</asp:ListItem>
        </asp:DropDownList>
    </div>
</form>

.aspx.vb 代码:

Protected Sub DropDownList1_SelectedIndexChanged(sender As Object, e As EventArgs)
    If DropDownList1.SelectedValue = "1" Then
        Response.Redirect("Contact.aspx")
    End If
End Sub

当我从下拉菜单中单击联系人时,它不会将我重定向到其他页面,请帮助。

4

2 回答 2

0

在您的 DropDownList 上,您需要包含AutoPostBack="True"以告诉服务器回发到服务器。您还需要使用OnSelectedIndexChanged分配事件名称

例如:

  <asp:DropDownList ID="DropDownList1"
             runat="server"
             AutoPostBack="true"
             OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
         <asp:ListItem value="">About Us</asp:ListItem>
         <asp:ListItem Value="1">Contact</asp:ListItem>
 </asp:DropDownList>
于 2020-07-28T17:18:30.073 回答
0

当组合框更改(下拉列表)时,它不会运行或触发选定的索引代码存根,除非您告诉控件回发到 Web 服务器。

因此,您需要将此值设置为 true:

在此处输入图像描述

您可以更改属性表或标记中的设置,执行以下操作:

<div>
  <asp:DropDownList ID="DropDownList1" runat="server" Height="23px" Width="118px"
    AutoPostBack="True">
    <asp:ListItem value="">About Us</asp:ListItem>
    <asp:ListItem Value="1">Contact</asp:ListItem>
        </asp:DropDownList>
</div>

因此,请注意您需要如何设置 AutoPostBack = "True"。如果您不这样做,那么您可以更改下拉列表,但如果没有回发,则所选索引代码存根将不会运行。

此外,作为仅供参考,选定索引从 0 开始。但是,如果您对按索引做事不感兴趣,但想使用您设置的“值”,则可以使用 SelectedValue。请注意,如果您使用 value="",那么 value 将采用您拥有的文本 - 在您的情况下为“关于我们”。人们通常只会使用列表项中的文本,但如果您希望覆盖 Selected 值,则可以分配一个实际值。

于 2020-07-28T17:34:15.843 回答