我正在尝试根据下拉列表中的选项更新某些控件。
例如,在dropDownList的“selectedIndexChanged”事件中,如果用户选择值“sport-car”,则禁用文本框“payload”并启用文本框“max speed”。
private sub dropDownList1_SelectedIndexChanged(byval sender as object, byval e as eventargs) handles dropDownList1.SelectedIndexChanged
If dropDownList1.selectedValue = "sport-car" then
textBox_payLoad.enabled = false
textBox_maxSpeed.enabled = true
end if
end sub
当我做这样的事情时,控件没有启用/禁用,即使事件(我添加了一个断点)似乎也没有被引发(有时它被引发几次)。此外,当执行条件中的指令时,没有任何变化。
我做错了什么?也许这是一个非常简单的问题,但我是MS Visual Web Developer的初学者。
标签:
<%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/Site.Master" CodeBehind="combo_atualizacao.aspx.vb" Inherits="taxasN4Web_v01.combo_atualizacao" %>
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<asp:ScriptManagerProxy ID="ScriptManagerProxy1" runat="server">
</asp:ScriptManagerProxy>
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True">
<asp:ListItem>sport-car</asp:ListItem>
<asp:ListItem>pickup</asp:ListItem>
<asp:ListItem>van</asp:ListItem>
<asp:ListItem>bus</asp:ListItem>
<asp:ListItem>motorcycle</asp:ListItem>
<asp:ListItem></asp:ListItem>
</asp:DropDownList>
Payload
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
Max Speed<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
</ContentTemplate>
</asp:UpdatePanel>
<p>
Payload
</p>
<p>
Max speed
</p>
</asp:Content>
Code-Behind(VB):
Public Class combo_atualizacao
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
End Sub
Protected Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles DropDownList1.SelectedIndexChanged
If DropDownList1.SelectedValue = "sport-car" Then
TextBox1.Enabled = False
TextBox1.Enabled = True
End If
End Sub
End Class
答案 0 :(得分:2)
您可以尝试将以下内容添加到更新面板中:
<asp:updatepanel>
<contenttemplate>
...
</contenttemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="DropDownList1" EventName="SelectedIndexChanged" />
</Triggers>
</updatepanel>