我有一个更新面板,点击一个按钮后提交页面。代码是
<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>
代码....
任何想法?!
答案 0 :(得分:0)
在“更新”面板类中尝试使用updateMode = Conditional
。如您所知,默认值为Always。
答案 1 :(得分:0)
这是通过添加此样板代码修复的一些常见错误:
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);
}
确保每次回发都会调用它。我从同事那里得到了这个,所以我找不到来源,抱歉。
答案 2 :(得分:0)
我尝试了你的代码,根本就没有问题...也许你给我们更多细节!你在Page_load函数中做什么?