Web窗体上有两控件,DropDownList1,TextBox1,当DropDownList的值选择是YES的时候,TextBox1可编辑,当选择NO的时候,TextBox1的值为空,并且不能编辑,该如何实现?
效果:
.aspx:
View Code
<% @ Page Language = " C# " AutoEventWireup = " true " CodeFile = " Default.aspx.cs " Inherits = " _Default " %> <! DOCTYPE html > < html xmlns ="http://www.w3.org/1999/xhtml" > < head runat ="server" > < title ></ title > </ head > < body > < form id ="form1" runat ="server" > < asp:DropDownList ID ="DropDownListYesNo" runat ="server" AutoPostBack ="true" OnSelectedIndexChanged ="DropDownList1_SelectedIndexChanged" > </ asp:DropDownList > < asp:TextBox ID ="TextBox1" runat ="server" Enabled ="true" ></ asp:TextBox > </ form > </ body > </ html >
.aspx.cs:
View Code
using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class _Default : System.Web.UI.Page { protected void Page_Load( object sender, EventArgs e) { if (!IsPostBack) { Data_Binding(); } } private void Data_Binding() { this.DropDownListYesNo.DataSource = GetData().Select(yn => new { value = yn }).ToList(); this.DropDownListYesNo.DataTextField = " value "; this.DropDownListYesNo.DataBind(); } protected void DropDownList1_SelectedIndexChanged( object sender, EventArgs e) { switch ( this.DropDownListYesNo.SelectedItem.Text) { case " YES ": this.TextBox1.Enabled = true; break; case " NO ": this.TextBox1.Enabled = false; this.TextBox1.Text = string.Empty; break; } } private List< string> GetData() { List< string> yn = new List< string>(); yn.Add( " YES "); yn.Add( " NO "); return yn; } }