2011-08-02 39 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()

唯一的缺點是,你不能動態生成的內容,但在大多數情況下,這是一個不實際的事情

相關問題