因為領導要求在模組的頂部將分類綁定(我個人認為沒什麼意義,但領導說的就一定有道理),於是有一個動態綁定按鈕問題出來了,代碼很簡單:
代碼
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();
}
由於動態產生的控制項 ,有的生存周期。在初始化裡面寫的話,回傳時就沒了,響應不了。放到外面問題解決。