2011-08-02 38 views
2

代码:CheckBox控件(C#)

<asp:CheckBox ID="CheckBox1" runat="server" 
    oncheckedchanged="CheckBox1_CheckedChanged" /> 

C#

protected void CheckBox1_CheckedChanged(object sender, EventArgs e) 
{ 

} 

我添加复选框,以我的方式。

选中复选框时,复选框下方应显示一些信息(文本框,标签等)。

我怎样才能做到这一点感谢帮助

回答

4

不要忘记autopostback = true

<asp:CheckBox ID="CheckBox1" runat="server" oncheckedchanged="CheckBox1_CheckedChanged" AutoPostBack="true" /> 
<asp:Panel runat="server" ID="panel1"></asp:Panel> 

-

protected void CheckBox1_CheckedChanged(object sender, EventArgs e) 
{ 
    panel1.Controls.Add(new Label { Text = "Text goes here" }); 
} 

这允许你添加你想要的任何控件。

1

只需添加文本框,标签等的控制,使他们看不到的。 然后在CheckBox1_CheckedChanged函数中使它们可见。 这是通过设置布尔Visible属性来完成

<asp:CheckBox ID="CheckBox1" runat="server" oncheckedchanged="CheckBox1_CheckedChanged" /> 
<asp:TextBox ID="textBox" runat="server" Visible=false /> 

protected void CheckBox1_CheckedChanged(object sender, EventArgs e) 
{ 
    textBox.Visible = true; 
} 
+0

你应该换一个面板所有控件。与其他许多控件相比,更改单个面板控件的可见性会更简单。而且,结构性的html标签也会沿服务器控件显示/隐藏 –

1

添加在您的复选框的标签的新文本控制,

<asp:Literal id="lblMsg" runat="server"/> 

然后在CheckBox1_CheckedChanged事件这样的:

lblMsg.Text = "Checked"; 

和是你的复选框的AutoPostBack属性设置为true

0

在经过更改事件写你这样的代码:

protected void CheckBox1_CheckedChanged(object sender, EventArgs e) 
{ 
    Label1.Text = "Text"; 
} 
0

我会建议这样做使用JavaScript。您的用户不必“回发”,并且对应用程序的感觉会更好,并且您将减少服务器费用。

使用jQuery,你可以使用这样的事情:

<script language="javascript" type="text/javascript"> 
$(document).ready(function(){ 
     $("#chk").onclick(function() { 
      $("#content").toggle(); 
     }); 
    }); 
</script> 
<input type="Checkbox" id="chk"/> 
<div id="content" style="display:none"> 
     <asp:TextBox runat="Server" id="oneOfYourControls" /> 
</div> 

jQuery是不是强制性的?你可以使用标准的简单getElementById()

唯一的缺点是,你不能动态生成的内容,但在大多数情况下,这是一个不实际的事情

相关问题