2012-03-19 4 views
0

하나의 버튼을 클릭하면 페이지를 제출하는 업데이트 패널이 있습니다. 코드는updatepanel은 한 번 작동 한 다음 페이지를 제출합니다 (asp.net C#)

<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

'페이지 제출'의 의미는 무엇입니까? 모든 포스트 백이 페이지를 비동기로 제출합니다. 최근에 page_load에서 수동으로 모든 포스트 백에서 모든 동적으로 생성 된 컨트롤을 수동으로 다시 만들어야한다는 사실을 알고 있습니까? 그렇지 않으면 다시 만들어지지 않습니다. –

+0

버튼을 처음 클릭하면 비동기가 발생하고 두 번째 클릭하면 전체 페이지가 전송됩니다. 즉, 업데이트 패널이 아닙니다. 버튼은 동적으로 생성되지 않으며 표준 HTML에 있습니다. –

답변

0

나는 당신의 코드를 시험해 보았다. 전혀 문제가 없다. 어쩌면 우리에게 더 자세한 정보를 주겠다! Page_load 함수에서 무엇을합니까?

+0

page_load에서 코드를 검토하도록 요청했기 때문에 이것을 대답으로 받아 들였습니다. 변수가 설정되지 않은 경우 리디렉션을 강제하는 몇 가지 속임수를 사용했습니다. 구조에 IsPostBack. –

+0

나는 IsPostBack **을 거의 모든 페이지의 필수 속성으로 생각한다. :) 내 간단한 설명이 도움이 되었기 때문에 기쁘다. –

0

업데이트 패널 클래스에서 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); 
} 

가이 모든 포스트 백 호출됩니다 확인하십시오

0

이는이 상용구 코드의 추가로 고정되어 몇 가지 일반적인 버그입니다. 나는 동료에게서 그것을 얻었습니다. 그래서 나는 소식통을 사이트에 올릴 수 없습니다, 미안 해요.

+0

그게 셰어 포인트 특정 일 아닌가요? –

+0

저는 실제로 SharePoint에서만 작업 했었습니다. ASP가 아니었을 것입니다. – Servy

관련 문제