如何在asp.net/ajax中更新控件状态?

时间:2011-03-11 15:59:52

标签: .net visual-studio-2010 ajaxcontroltoolkit

我正在尝试根据下拉列表中的选项更新某些控件。

例如,在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>
            &nbsp;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

1 个答案:

答案 0 :(得分:2)

您可以尝试将以下内容添加到更新面板中:

<asp:updatepanel>
<contenttemplate>
 ...
</contenttemplate>
<Triggers>
 <asp:AsyncPostBackTrigger ControlID="DropDownList1" EventName="SelectedIndexChanged" />
</Triggers>
</updatepanel>