【问题标题】:checked checkbox answer from a dynamic created checkbox that had ben added to a panel from code behind来自已从后面的代码添加到面板的动态创建的复选框的选中复选框答案
【发布时间】:2012-03-20 06:02:09
【问题描述】:

我正在用 asp.net 写一个网页,在我的 aspx 页面中我有一个面板:

<asp:Panel ID="panel1" runat="server"/>

稍后在我的程序中,我从后面的代码向面板添加控件(复选框)。

如示例:

if(something)
{
  checkbox cb = new checkbox();
  cb.ID = "checkbox1";
  panel1.Controls.Add(cb);
}
else
{
  checkbox cb = new checkbox();
  cb.ID = "checkbox2";
  panel1.Controls.Add(cb);
}

现在我的问题是: 如果有人“选中”了我的一个复选框(复选框 1 或复选框 2),我该如何捕捉到。 如果在创建面板后动态创建复选框,则在我的面板上

谢谢

【问题讨论】:

    标签: asp.net dynamic checkbox panel code-behind


    【解决方案1】:

    在后面的代码中添加复选框时,您还应该分配关联的事件以检查/取消选中复选框。

      CheckBox cb = new CheckBox();
      cb.ID = "checkbox1";
      cb.CheckedChanged += Check1_Clicked;
      panel1.Controls.Add(cb);
    
    
    private void Check1_Clicked(object sender, EventArgs e) 
    {
       // do whatever you need
    }
    

    【讨论】:

    • 这就是我所做的,但由于某种原因它不起作用,当我点击 checkbocx​​ 时,它不会转到我给它的事件。只是为了清楚面板是在加载 aspx 页面时创建的,稍后在我的程序中我将复选框添加到面板控件
    【解决方案2】:

    除了 Dimi Toulakis 所说的之外,我认为您还需要将添加为 True 的复选框的 AutoPostBack 属性设置为。这样,当它们被选中或取消选中时,页面将正确回发。

    【讨论】:

      猜你喜欢
      • 2012-04-17
      • 1970-01-01
      • 1970-01-01
      • 2015-12-18
      • 1970-01-01
      • 2020-04-24
      • 2015-04-08
      • 2016-03-21
      • 1970-01-01
      相关资源
      最近更新 更多