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();

    }

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

     

  • 相关阅读:
    linux less命令用法
    Spark-RDD 模型 以及运行原理
    Spark 架构原理介绍 以及 job、task、stag 概念
    Kafka 基本概念以及框架介绍
    负载均衡- TCP/ IP 基础知识
    JAVA多线程和并发基础面试题
    Java并发使用--线程池
    Java基础--并发编程
    事务实现原则(一) 事务的改变以及JDBC事务的设计
    Spark RDD Transformation和Action
  • 原文地址:https://www.cnblogs.com/GDLMO/p/1884889.html
Copyright © 2011-2022 走看看