我想创建一个UserControl,我将在其中有一个复选框和一个文本框。如果选中该复选框,则textbox的enable属性为true,否则为false。
这就是我在页面中的内容:
<form id="form1" runat="server">
<div>
<custom:NullableTextBox ID="NullableTextBox1" OnCheckedChanged="NullableTextBox1_OnCheckedChanged" runat="server"></custom:NullableTextBox>
</div>
</form>
这是我的UserControl类:
public partial class NullableTextBox : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
}
public NullableTextBox()
{
CheckBox1.CheckedChanged += new EventHandler(CKB_CheckedChanged);
this.Controls.Add(CheckBox1);
this.Controls.Add(TextBox1);
}
private CheckBox CheckBox1 = new CheckBox();
private TextBox TextBox1 = new TextBox();
private void CKB_CheckedChanged(object sender, EventArgs e)
{
if (CheckBox1.Checked)
{
TextBox1.Enabled = true;
}
else
{
TextBox1.Text = string.Empty;
TextBox1.Enabled = false;
}
}
}
当我选中或取消选中复选框时,没有任何事情发生,我希望它能在不进行回发的情况下立即更新。
答案 0 :(得分:0)
您执行服务器端事件但不希望进行回发。这意味着您需要使用JavaScript将其添加到客户端。
onclick="document.getElementById('TextBox1').disabled=this.checked;"
How to disable textbox depending on checkbox checked
希望有所帮助
答案 1 :(得分:0)
在复选框中设置AutoPostBack = "true"
。