常常在網頁中 動能新增event
但遇上UpdatePanel 是一個困擾
當我動態新增Trigger,系統只會作用一次
後來參考ASP.net,C#,在UpdatePanel中動態加入Trigger
原來是因為Trigger掉了
所以重新將Trigger加入 PageLoad 即可
if (this.ScriptManager1.IsInAsyncPostBack)
{
UpdatePanel1.GetType().GetMethod("Initialize", BindingFlags.NonPublic | BindingFlags.Instance).Invoke(UpdatePanel1, null);
}
//==========================================================
範列
AsyncPostBackTrigger trigger = new AsyncPostBackTrigger();
CheckBoxList chk = new CheckBoxList();
chk.ID = ds["rowno"].ToString();
chk.RepeatDirection = RepeatDirection.Horizontal;
chk.AutoPostBack = true;
chk.SelectedIndexChanged += new EventHandler(chk_SelectedIndexChanged);
trigger.ControlID = chk.ID; //要偵測的物件ID
trigger.EventName = "SelectedIndexChanged"; //Button的觸發事件為Click
up_list.Triggers.Add(trigger); //UpdatePanel
string[] itmes = item.Split('|');
int i = 0;
foreach (string s in itmes)
{
string[] o = s.Split(',');
ListItem litem = new ListItem(o[0], o[1]);
if (i == 0)
{
litem.Selected = true;
}
if (getSelected(ds["rowno"].ToString(), o[1]))
{
litem.Selected = true;
}
chk.Items.Add(litem);
i++;
}
td2.Controls.Add(chk); //Panel
p_list.Controls.Add(td2); //Panel
沒有留言:
張貼留言