updatepanel工作一次,然后提交页面(asp.net c#)

本文关键字:net 提交 asp 工作 一次 updatepanel 然后 | 更新日期: 2023-09-27 18:28:28

我有一个更新面板,单击一个按钮后即可提交页面。代码是

<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>标签中的所有内容。。。。

有什么想法吗?!

updatepanel工作一次,然后提交页面(asp.net c#)

我试过你的代码,里面根本没有问题。。。也许你能给我们更多的细节!你在Page_load函数中做什么?

尝试在Update面板类中使用updateMode = Conditional。如您所知,默认情况下它的值为"始终"。

这是一些常见的错误,通过添加以下样板代码修复:

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);
}

确保每次回发都会调用它。我是从一位同事那里得到的,所以我无法找到消息来源,对不起。