如何使用 OnSelectedIndexChanged in asp.net(如何根据下拉列表选择启用或禁用文本框)

本文关键字:启用 文本 选择 in OnSelectedIndexChanged 何使用 asp net 何根 下拉列表 | 更新日期: 2023-09-27 18:31:04

<div>
     <asp:DropDownList ID="DropDownList1" runat="server">
        <asp:ListItem Value="1">management</asp:ListItem>
        <asp:ListItem Value="2">cet</asp:ListItem>
        <asp:ListItem Value="3">comedk</asp:ListItem>
    </asp:DropDownList>
</div>

在选择"管理"选项时,应禁用排名文本框,否则应启用。

如何使用 OnSelectedIndexChanged in asp.net(如何根据下拉列表选择启用或禁用文本框)

使用以下代码:

<asp:DropDownList ID="DropDownList1" runat="server"
        onselectedindexchanged="SelectedIndexChanged"  AutoPostBack="True" >
        <asp:ListItem Value="1">management</asp:ListItem>
        <asp:ListItem Value="2">cet</asp:ListItem>
        <asp:ListItem Value="3">comedk</asp:ListItem>
</asp:DropDownList>
protected void SelectedIndexChanged(object sender, EventArgs e)
{
     if(DropDownList1.SelectedItem.Value == "1")
{
     //DISABLE TEXT BOX
}
else
{
//ENABLE TEXT BOX
}
}

如果您有任何问题,请告诉我。

<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" 
        onselectedindexchanged="ItemChanged">
        <asp:ListItem Value="1">management</asp:ListItem>
        <asp:ListItem Value="2">cet</asp:ListItem>
        <asp:ListItem Value="3">comedk</asp:ListItem>
</asp:DropDownList>
protected void ItemChanged(object sender, EventArgs e)
{
     if(DropDownList1.SelectedItem.Value == "1")
     //disable text box
}

将"onselectedindexchanged"事件添加到下拉控件。然后在下拉所选值为 1 时禁用文本框。

试试这个>>

<div>
  <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DropDownList1_Changed">
        <asp:ListItem Value="1">management</asp:ListItem>
        <asp:ListItem Value="2">cet</asp:ListItem>
        <asp:ListItem Value="3">comedk</asp:ListItem>
</asp:DropDownList>
  
  <asp:TextBox ID="TextBox1" runat= "server"></asp:TextBox>
</div>
/*Code Behind*/
protected void DropDownList1_Changed(object sender, EventArgs e)
{
     if(DropDownList1.SelectedValue == "1")
        {
         TextBox1.Enabled = false;
        }
     else
        {
          TextBox1.Enabled = true;
        }
}

您无需

执行页面回发即可在更改下拉列表时禁用文本框:

<div>
     <asp:DropDownList ID="DropDownList1" runat="server">
        <asp:ListItem Value="1">management</asp:ListItem>
        <asp:ListItem Value="2">cet</asp:ListItem>
        <asp:ListItem Value="3">comedk</asp:ListItem>
    </asp:DropDownList>
</div>

<script type="text/javascript">

    document.getElementById("<%=DropDownList1.ClientID %>").addEventListener("change", ChangeRankState, false);

    function ChangeRankState() {
        var e = document.getElementById("<%=DropDownList1.ClientID%>");
        var ddVal = e.options[e.selectedIndex].value;
        if (ddVal === '1') {
            document.getElementById('<%=txtRank.ClientID%>').disabled = true;
        } else {
            document.getElementById('<%=txtRank.ClientID%>').disabled = false;
        }
    }

</script>

这只是一个例子,您可能希望更新它以使其更灵活,但我希望您明白这个想法。

如果需要,可以更改此行:

var ddVal = e.options[e.selectedIndex].value;

阅读:

var ddVal = e.options[e.selectedIndex].text;

然后更改:

if (ddVal === '1') 

if (ddVal === 'management') 

比较可见文本而不是值。

需要注意的是,脚本应该在div 下方。 您不能和不存在的控件的事件侦听器:)