2011-04-17 103 views
2

我正在創建一個網頁,幾個updatepanels嵌套在一個家長updatepanel。我已經定義了讓某些控件更新控件在其他updatepanels中所需的所有觸發器,我已將每個updatepanelupdatemode設置爲conditional,並且將屬性childrenastriggers設置爲false,並且幾乎所有內容都相應地工作。但我摔倒在一個imagebutton_Click事件上:當我點擊imagebutton時,它會調用該事件,但不會更新單個updatepanel,雖然在同一個updatepanel中有幾個imagebuttons更新其updatepanels就好了。UpdatePanel沒有更新imagebutton點擊事件

現在,這可能僅僅是導致該問題的imagebutton的任務:

  • imagebutton啓動定時器
  • imagebutton增加了一個預定義的表格與另一個updatepanel數據。
  • imagebutton激活

可能已經嘗試過解決方案的計時器對象: - 我試圖設置 的causesvalidationfalse(的imagebutton屬性) - 我曾嘗試使用myscriptmanager.registerASyncPostBack(imagebutton)

的代碼在我的按鈕後面(儘管它並不是真正的東西):

protected void imbformulier_Click(Object sender, ImageClickEventArgs e) 
{ 
     imbFormulier.Visible = false; 
     imbGebruikers.Visible = false; 
     imbModellen.Visible = false; 
     pnlGegevens1.Visible = false; 
     pnlGegevens2.Visible = true; 
     pnlNavigatie.Visible = true; 
     pnlEvaluatie.Visible = true; 


     //kijken welk formulier moet ingevuld worden adhv de ddl's en dit meegeven aan de zelfgemaakte klasse 

     List<EvaluatieFormulier> mijnformulieren = (List<EvaluatieFormulier>)Session["mijnformulieren"]; 
     IEnumerator<EvaluatieFormulier> enumerator = mijnformulieren.GetEnumerator(); 
     EvaluatieFormulier meetegeven = new EvaluatieFormulier(); 
     while (enumerator.MoveNext()) 
     { 
      if (((enumerator.Current.GebruikergeevalueerdID == ddlGebruikers.SelectedValue) && (enumerator.Current.ModelID == Convert.ToInt32(ddlModellen.SelectedValue)))) 
      { 
       meetegeven = enumerator.Current; 
       //Eventueel tekst veranderen als er al was gewerkt aan een bepaalde evaluatie 
       if (meetegeven.Tijdaangewerkt == 0) 
       { 
        lblInfo.Text = "Evaluatie gestart van " + ddlGebruikers.SelectedItem.Text; 
        lblDatum.Text = "Evaluatie begonnen op: "+ DateTime.Now.Date.ToString("d/M/yyyy") + "(Vandaag)" ; 
        //updaten in database 
        Session["aantalminutenaangewerkt"] = 0; 
        Session["aantalsecondenaangewerkt"] = 0; 
        timTijdAanGewerkt.Enabled = true; 
        lblTijd.Visible = true; 
       } 
       else 
       { 
        lblInfo.Text = "Evaluatie verdergezet van " + ddlGebruikers.SelectedItem.Text; 
        lblDatum.Text = "Evaluatie laatst gewijzigd : " + meetegeven.Tijdingevuld.ToString(); 
        Session["aantalminutenaangewerkt"] = meetegeven.Tijdaangewerkt; 
        Session["aantalsecondenaangewerkt"] = 0; 
        timTijdAanGewerkt.Enabled = true; 
        lblTijd.Visible = true; 
       } 
      } 
     } 


     Evaluatieform formulier = new Evaluatieform(meetegeven); 
     pnlEvaluatie.ContentTemplateContainer.Controls.Add(formulier.EvaluatiePanel); 
     Session["formulier"] = formulier; 

     if (formulier.evaluatiemodel.Domeins.Count > 4) 
     { 
      imbVorige.Visible = false; 
      imbvolgende.Visible = true; 
     } 
     else 
     { 
      imbVorige.Visible = false; 
      imbVorige.Visible = false; 
      imbvalideren.Visible = true; 
     } 
    } 

回答

0

我在看完每一個方面後都得到了這個工作,看起來我只需要在一個大的父級更新面板中的一個頁面上擁有所有的單獨的updatepanel(我認爲這是在我發佈這個時「 - , updatemode爲條件並定義我的觸發器。