FineUI 官方论坛

标题: 请教动态添加按钮事件怎么没有响应? [打印本页]

作者: liriyue1986    时间: 2016-11-5 10:17
标题: 请教动态添加按钮事件怎么没有响应?

1、我动态创建了浮动的 按钮,这些按钮添加了 点击事件,但事件都不执行,请问哪里出问题了?

2、还有我创建完之后,怎么在form1.controls里遍历不到这些按钮控件?

  1. private void LoadDevice(string floorId)
  2.     {
  3.         DataTable dtDevice = CSql.Select("select * from Light_Device where 楼层编号='" + floorId + "'").Tables[0];

  4.         for(int i =0;i<dtDevice.Rows.Count;i++)
  5.         {
  6.             
  7.             FineUI.Button btn = new FineUI.Button();
  8.             
  9.             btn.ID = dtDevice.Rows[i]["ID"].ToString();
  10.             btn.ToolTip = dtDevice.Rows[i]["DName"].ToString();            
  11.             //btn.Click += btnLightControl_Click;
  12.             btn.Click += new EventHandler(btnLightControl_Click);
  13.             if (dtDevice.Rows[i]["Sta"].ToString() == "1")
  14.             {
  15.                 btn.CssClass = "Light_On";
  16.             }
  17.             else
  18.             {
  19.                 btn.CssClass = "Light_Off";
  20.             }
  21.             btn.CssStyle = "left:" + dtDevice.Rows[i]["X"].ToString() + "px;top:" + dtDevice.Rows[i]["Y"].ToString() + "px;";

  22.             form1.Controls.Add(btn);
  23.         }
  24.     }

  25.     protected void btnLightControl_Click(object sender, EventArgs e)
  26.     {
  27.         ((FineUI.Button)sender).CssClass = ((FineUI.Button)sender).CssClass == "Light_On" ? "Light_Off" : "Light_On";
  28.     }
复制代码



作者: zy32002    时间: 2016-11-5 10:59
本帖最后由 zy32002 于 2016-11-5 11:00 编辑

LoadDevice 在哪里加载的? 动态添加f控件要在page_init事件里才可以
作者: liriyue1986    时间: 2016-11-5 11:36
在page load事件里

  1. protected void Page_Load(object sender, EventArgs e)
  2.     {

  3.         if (!IsPostBack)
  4.         {
  5.             LoadDevice("01");
  6.         }
  7.     }
复制代码

作者: liriyue1986    时间: 2016-11-5 11:37
zy32002 发表于 2016-11-5 10:59
LoadDevice 在哪里加载的? 动态添加f控件要在page_init事件里才可以

在Page_Load事件里,控件已经添加成功了,可以在页面看到控件,但就是 按钮控件 的 点击事件 没有响应
作者: sanshi    时间: 2016-11-5 13:49
动态创建控件和添加控件事件代码要放到Page_Init中,一般仅用于初始化:http://www.cnblogs.com/sanshi/archive/2012/11/19/2776672.html
作者: liriyue1986    时间: 2016-11-5 14:39
sanshi 发表于 2016-11-5 13:49
动态创建控件和添加控件事件代码要放到Page_Init中,一般仅用于初始化:http://www.cnblogs.com/sanshi/arc ...

可以了  ,  感谢




欢迎光临 FineUI 官方论坛 (https://fineui.com/BBS/) Powered by Discuz! X3.4