Controlo da opção em Asp.net (c#)
Código:
<asp:CheckBox ID="CheckBox1" runat="server"
oncheckedchanged="CheckBox1_CheckedChanged" />
C#
protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
{
}
Adicionei a caixa de cheques ao meu formulário.
Quando a opção estiver assinalada, algumas informações (caixa de texto, legenda, etc.) deve aparecer mesmo por baixo da caixa de seleção.
Como posso fazer isto?5 answers
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" });
}
Isto permite-lhe adicionar o controlo que quiser.
Basta adicionar uma caixa de texto, etiqueta, etc. controla e torna-os invisíveis.
Em seguida, na função CheckBox1_CheckedChanged
torná-los visíveis.
Isto é feito definindo a propriedade bool Visible
<asp:CheckBox ID="CheckBox1" runat="server" oncheckedchanged="CheckBox1_CheckedChanged" />
<asp:TextBox ID="textBox" runat="server" Visible=false />
E
protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
{
textBox.Visible = true;
}
Adicione um novo controlo literal sob as suas marcas,
<asp:Literal id="lblMsg" runat="server"/>
Depois, na sua opção 1_ CheckedChanged event to this:
lblMsg.Text = "Checked";
E sim definir a propriedade AutoPostBack
da sua opção para true
Usando jQuery, você pode usar algo assim:
<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>
O JQuery não é obrigatório... você pode usar o padrão simples getElementById()
.
A única desvantagem, é que você não pode construir dinamicamente o conteúdo, mas na maioria dos casos não é realmente um assunto {[[4]}
Na opção Mudança de evento, escreva o seu código desta forma:
protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
{
Label1.Text = "Text";
}