Панель обновления не обновляется при событии нажатия кнопки imagebutton

#c# #asp.net #updatepanel #postback #imagebutton

#c# #asp.net #панель обновления #обратная отправка #кнопка imagebutton

Вопрос:

Я создаю веб-страницу с НЕСКОЛЬКИМИ, updatepanels вложенными в ОДНОГО родителя updatepanel . Я определил все триггеры, которые необходимы, чтобы позволить определенным элементам управления обновлять элементы управления, которые находятся в других updatepanels , я установил для каждого updatepanel ‘s updatemode значение conditional и для свойства childrenastriggers значение false , и почти все работает соответствующим образом. Но я натыкаюсь на одно imagebutton_Click событие: когда я нажимаю imagebutton , оно вызывает событие, но не обновляет ни одного updatepanel , хотя у меня есть несколько других imagebuttons в том же самом updatepanel , которые обновляют их updatepanels просто отлично.

Теперь это может быть просто задачей imagebutton , которая вызывает проблему:

  • imagebutton Запускается таймер
  • imagebutton Добавляется предопределенная таблица с данными в другой updatepanel .
  • imagebutton Активирован объект timer

Возможные уже опробованные решения: — Я пытался установить causesvalidation на false (свойство 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) amp;amp; (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;
        }
    }
  

Ответ №1:

Я заставил это работать, после рассмотрения каждого аспекта кажется, что мне просто нужно было разместить всю отдельную панель обновления на одной странице в одной большой родительской панели обновления (в которой, как я думал, она была, когда я опубликовал это «—, изменить updatemode на условный и определить мои триггеры.