2020年2月13日 星期四

[ASP.NET]在UpdatePanel中 動態產生Trigger

常常在網頁中 動能新增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
           

沒有留言:

張貼留言