如何使用 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>
在选择"管理"选项时,应禁用排名文本框,否则应启用。
使用以下代码:
<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 下方。 您不能和不存在的控件的事件侦听器:)