2016-01-20 85 views
0
<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.net使用onselectedindexchanged(如何根据下拉选择启用或禁用文本框)

+1

你尝试过什么吗? –

+0

欢迎来到SO,如果您是新用户,请在此处查看[如何提问](http://stackoverflow.com/help/how-to-ask)。您需要正确标记您的问题,以便您可以从该区域收到良好的答案。目前你所问的问题可以使用JavaScript和Asp.net进行排序。对于即时反馈,您需要添加**到目前为止所尝试的内容**,因为这会缩短为您准备样本的时间。 – Prabhat

回答

0

使用以下代码 然后禁用文本框:

<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 
} 
} 

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

0
<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 
} 
0

添加“onselectedindexchanged”事件向下拉控制时下拉选择值是1

+0

也在其他情况下,你需要启用textbox.if(DropDownList1.SelectedItem.Value ==“1”) //禁用文本框,否则//启用文本框 – Suvidha

0

试试这个>>

<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; 
 
     } 
 
}

+0

这是很好的解释错误不仅仅是在哪里给代码。 –

0

你并不需要做一个网页提交到一个下拉的变化禁用一个文本框:

<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。你不能和一个事件监听器到一个不在那里的控件:)

相关问题