updatepanel работает один раз, а затем отправляет страницу (asp.net c #) - PullRequest
0 голосов
/ 19 марта 2012

У меня есть панель обновления, которая после нажатия одной кнопки отправляет страницу.Код:

<asp:ScriptManager ID="MainScriptManager" runat="server" EnablePageMethods="true" />

<asp:UpdatePanel ID="pnlCalendar" runat="server">
    <ContentTemplate>
        <asp:PlaceHolder ID="panCalendarHolder" runat="server"></asp:PlaceHolder>
        <br /><br />
        <asp:Button id="btnViewWholeWeek" text="View Whole Week" runat="server" CssClass="normal-button" OnClick="viewWholeWeek" CausesValidation="false"></asp:Button>
    </ContentTemplate>   
</asp:UpdatePanel>

, функция на прессе не содержит кода, который я тестировал, чтобы выяснить, не является ли это причиной проблемы.Вот это все равно

protected void viewWholeWeek(object sender, EventArgs e) {  
    HtmlContainerControl paraDayName = (HtmlContainerControl)new HtmlGenericControl("p");
    paraDayName.InnerHtml = "test";
    panCalendarHolder.Controls.Add(paraDayName); 
}

Я нажимаю кнопку выше один раз ... это работает - обновление панели обновления.Я нажимаю это снова, и это передает страницу.У меня все внутри тега <form id="frmMain" runat="server"> и </form> ....

есть идеи?!

Ответы [ 3 ]

0 голосов
/ 19 марта 2012

Это типичная ошибка, которая исправляется добавлением этого стандартного кода:

private void EnsureUpdatePanelFixups()
{
    if (this.Page.Form != null)
    {
        string formOnSubmitAtt = this.Page.Form.Attributes["onsubmit"];

        if (formOnSubmitAtt == "return _spFormOnSubmitWrapper();")
        {
            this.Page.Form.Attributes["onsubmit"] = "_spFormOnSubmitWrapper();";
        }
    }

    ScriptManager.RegisterStartupScript(this, typeof(ThisClassTypeGoesHere), "SomeStringToBeTheKey", "_spOriginalFormAction = document.forms[0].action;_spSuppressFormOnSubmitWrapper=true;", true);
}

Убедитесь, что вызывается каждый постбэк.Я получил это от коллеги, поэтому не могу найти источник, извините.

0 голосов
/ 20 марта 2012

Я попробовал ваш код, там вообще нет проблем ... может быть, вы дадите нам более подробную информацию!Что вы делаете в функции Page_load?

0 голосов
/ 19 марта 2012

Попробуйте с updateMode = Conditional в вашем классе панели обновлений. Как вы знаете, по умолчанию это значение всегда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...