動態產生ASP.NET按鈕時要注意的一個問題

來源:互聯網
上載者:User

   因為領導要求在模組的頂部將分類綁定(我個人認為沒什麼意義,但領導說的就一定有道理),於是有一個動態綁定按鈕問題出來了,代碼很簡單:

 

代碼

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

}

 

由於動態產生的控制項 ,有的生存周期。在初始化裡面寫的話,回傳時就沒了,響應不了。放到外面問題解決。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.