zoukankan      html  css  js  c++  java
  • 动态生成ASP.NET按钮时要注意的一个问题

       因为领导要求在模块的顶部将分类绑定(我个人认为没什么意义,但领导说的就一定有道理),于是有一个动态绑定按钮问题出来了,代码很简单:

    代码
    protected void BindBtn()
            {
                
    if (CategoryIds.Length > 0)
                {
                    
    string[] split = CategoryIds.Split(',');
                    
    int[] cids = new int[split.Length];
                    
    for (int i = 0; i < split.Length; i++)
                    {
                        cids[i] 
    = int.Parse(split[i]);
                        LinkButton btn 
    = new LinkButton();
                        btn.ID 
    = "btnCategory" + cids[i].ToString();
                        btn.CommandArgument 
    = cids[i].ToString();
                        CategoryController ctlCate 
    = new CategoryController();
                        CategoryInfo infoCate 
    = ctlCate.Get(cids[i], ArticleManagerModuleID);

                        btn.Text 
    = infoCate != null ? infoCate.Name : "value = " + cids[i].ToString();

                        btn.Click 
    += new EventHandler(CategoryBtnClicked);


                        phCategory.Controls.Add(btn);
                        Label lbl 
    = new Label();
                        lbl.Width 
    = 10;
                        lbl.Height 
    = 10;
                        phCategory.Controls.Add(lbl);
                    }
                }
            }

    却在调用时一直不能触发事件,怎么也没想明白,后来发现我将BindBtn放在了if(!IsPostBack) 中,代码如下:

    if(!IsPostBack) 

        
    //.......
        BindBtn();

    }

    由于动态生成的控件 ,有的生存周期。在初始化里面写的话,回发时就没了,响应不了。放到外面问题解决。

     

  • 相关阅读:
    吕滔博客 --------MYSQL 备份与参数详解
    solaris知识库
    F5 负载均衡
    日志管理 rsyslog服务浅析
    你所不知到的C++ 系列
    php内核探索
    shell 编程中使用到得if语句内判断参数
    linux查看CPU性能及工作状态的指令
    MYSQL 5.7 主从复制 -----GTID说明与限制 原创
    C#:Json数据反序列化为Dictionary并根据关键字获取指定的值
  • 原文地址:https://www.cnblogs.com/GDLMO/p/1884889.html
Copyright © 2011-2022 走看看