Контроль CheckBox в Asp.net (c #) - PullRequest
       5

Контроль CheckBox в Asp.net (c #)

2 голосов
/ 02 августа 2011

Код:

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

с #

protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
{

}

Я добавил флажок в мою форму.

Когда флажок установлен, некоторая информация (TextBox, Label и т. Д.) Должна отображаться прямо под флажком.

Как я могу это сделать?

Ответы [ 5 ]

6 голосов
/ 02 августа 2011

Не забудьте 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" });
}

Это позволяет вам добавить любой элемент управления, который вы хотите.

2 голосов
/ 02 августа 2011

Просто добавьте элементы управления TextBox, Label и т. Д. И сделайте их невидимыми. Затем в функции CheckBox1_CheckedChanged сделайте их видимыми. Это делается установкой свойства bool 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;
}
1 голос
/ 02 августа 2011

Я бы предложил сделать это с помощью 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().

Единственный недостаток - это то, что вы не можете динамически создавать контент, но в большинстве случаев это не имеет значения

1 голос
/ 02 августа 2011

Добавьте новый буквальный элемент управления под вашими флажками,

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

затем в вашем событии CheckBox1_CheckedChanged к этому:

lblMsg.Text = "Checked";

и yes установите свойство AutoPostBack вашего флажка на true

0 голосов
/ 02 августа 2011

В проверенном измененном событии напишите свой код так:

protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
{
     Label1.Text = "Text";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...