• 动态生成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();

    }

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

     

  • 相关阅读:
    安装高版本的docker
    Apache JMeter汉化手册
    安装python包
    Jmeter Cluster
    doc下设置永久环境变量的好方法
    jmeter非常好的博客收藏
    mysql-学习链接
    python 脚本
    常见python快捷键
    2015年心情随笔--周围太烦躁,我想静静
  • 原文地址:https://www.cnblogs.com/GDLMO/p/1884889.html
Copyright © 2020-2023  润新知