2013-11-25 80 views
2

我在將一些控件添加到Panel(它獲取「PopUpped」ModalPopupExtender)並添加CheckedChanged -EventHandler時遇到問題。添加EventHandler進行動態添加控制

首先,當用戶點擊一個按鈕時,發生這種情況:

- > CreatePanelChoose()

foreach (ListItem item in lbSupplier.Items) 
{ 
    string cbid = "cb" + i; 
    CheckBox cb = new CheckBox(); 
    cb.ID = cbid; 
    cb.Text = item.Text; 
    cb.AutoPostBack = true; 

    AjaxControlToolkit.MutuallyExclusiveCheckBoxExtender mecbe = new AjaxControlToolkit.MutuallyExclusiveCheckBoxExtender(); 
    mecbe.ID = "mecbe" + cbid; 
    mecbe.TargetControlID = cbid; 
    mecbe.Key = "SupplierKEY"; 
    mecbe.BehaviorID = mecbe.ID + i; 

    //Also adding a Label        

    phModalPopupExtender.Controls.Add(new LiteralControl("</br>")); //phModalPopupExtender is a PlaceHolder 
    phModalPopupExtender.Controls.Add(cb); 
    phModalPopupExtender.Controls.Add(mecbe); 
    phModalPopupExtender.Controls.Add(lbl); 

    AsyncPostBackTrigger trigger = new AsyncPostBackTrigger(); 
    trigger.ControlID = cbid; 
    trigger.EventName = "CheckedChanged"; 
    UpdatePanelMatrix.Triggers.Add(trigger); 

    i++; 
    ButtonOK.Enabled = false; 

} 
lblText.Text = "Select one Supplier"; 
ModalPopupExtender1.Show(); 

然後我添加EventHandlerPage_LoadComplete

Page_LOadComplete-Code

正如你所看到的,它也被賦予了控制權(我認爲)。 的ModalPopup顯示正確,但如果我點擊CheckBox之一,那麼它只是關閉它沒有進入cb_CheckedChanged,但它是一個異步回發... 如果我檢查Request.Form["__ASYNCPOST"]其真實Request.Form["__EVENTTARGET"]也是正確的。 (它給了我唯一的ID!)

Request.Form["__EVENTARGUMENT"]是空的。

我想我也需要說我使用一個母版頁。

你能幫我找到問題嗎? 我不應該是在頁面的生命週期,因爲MSDN說:

LoadComplete

在事件處理階段結束募集。

將此事件用於需要加載頁面上所有其他控件的任務。

它最早的地方讓我覺得它是對的。 BTW:是的,我看了看槽的主題在這裏媒體鏈接,但沒有任何幫助我...(谷歌FO肯定也)

編輯1:

if (IsPostBack) 
{ 
    if (recreating == true) 
    { 
      CreatePanelChoose(); 
    } 
} 

CreatePanelChoose我做foreach現在每次當它的回傳!但它仍然犯規火cb_ChangedChecked ...

編輯2:

MSDN頁,生命週期也說:

PreInit

復活以後,開始階段完成並在初始化階段開始之前 。

使用此事件的以下內容:

創建或重新創建動態控件。

所以我試圖重建小組在那裏。但我沒有那裏的ListItems獲取值...?!

非常感謝, 擺脫

+1

你必須重新** ** - 具有相同ID的像以前創建'Page_Load'所有動態創建的控件(最晚)。否則,事件不會被觸發。 –

+0

@TimSchmelter感謝您的回答!我重新創建它們現在每次,但仍 - 它不工作... – DatRid

回答

0

好了,放棄了...... 如果有人仍然有一個答案,這將是偉大的!

現在我不使用OnCheckedChanged-CheckBoxes的事件了。 我只是讓他們選擇CheckBox並在ButtonOk我環路的OnClick通過CheckBoxes和檢查選擇哪一個。