developer tip

UpdatePanel의 버튼에서 전체 포스트 백을 강제로 적용하려면 어떻게합니까?

optionbox 2020. 11. 4. 07:54
반응형

UpdatePanel의 버튼에서 전체 포스트 백을 강제로 적용하려면 어떻게합니까?


UpdatePanel의 버튼에서 전체 포스트 백을 강제로 적용하려면 어떻게합니까?


UpdatePanel Triggers 속성을 사용하여 전체 포스트 백을 트리거하는 작업을 등록 할 수 있습니다 .

해당 속성에 PostBackTrigger 개체를 추가하고 전체 포스트 백을 트리거해야하는 컨트롤의 ControlID를 포함합니다.

<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
    <ContentTemplate>
        ...
    </ContentTemplate>
    <Triggers>
        <asp:PostBackTrigger ControlID="myFullPostBackControlID" />
    </Triggers>
</asp:UpdatePanel>

아무도 없기 때문에 이것을 추가하십시오. 위의 방법을 사용하지 않고 한 줄의 코드로 코드 숨김에서이 ​​작업을 수행 할 수 있습니다. 이것을 page_load에 넣으십시오.

비주얼 베이직

ScriptManager.GetCurrent(Me).RegisterPostBackControl(myButtonID)

씨#

ScriptManager.GetCurrent(this).RegisterPostBackControl(myButtonID);

에서 여기 :

PostBackTrigger 컨트롤을 사용하여 비동기 포스트 백을 수행하는 대신 포스트 백을 발생시키는 UpdatePanel 내부의 컨트롤을 활성화합니다.

 <Triggers>
    <asp:PostBackTrigger ControlID="controlID" />
 </Triggers>

WebDataGrid 내에서 ImageButton을 사용하여 동일한 문제가 발생했습니다.

대신 webdatagrid의 preRender 안에 EvilDr의 Line을 넣었습니다. 잘 했어!

for (int i = 0; i < wdgMyData.Rows.Count; i++)
{
   ScriptManager.GetCurrent(this).RegisterPostBackControl((ImageButton)wdgMyData.Rows[i].Items[3].FindControl("btnDownloadExcel"));
}

모든 것이 업데이트 패널에 있고 Document.Ready 코드가 클릭으로 작동 하도록 전체 게시를 원할 때 약간 까다로운 접근 방식이 있습니다 .

1. 업데이트 패널 외부에 더미 버튼을 만들고 다음과 같은 코드 뒤에서 클릭합니다.

ScriptManager.RegisterStartupScript(Page, this.GetType(), "ResetDoc", "ResetDocumentReady();", true);

2. 다음 과 같이 프런트 엔드에 함수를 정의하십시오.

function ResetDocumentReady() {
        $("[id$=DummyButton]").click();
    }

참고 : 그러나 가장 좋은 방법은 @Thibault Falise가 게시 한 답변 인 트리거를 사용하는 것입니다. :)

참고 URL : https://stackoverflow.com/questions/2545508/how-do-i-force-full-post-back-from-a-button-within-an-updatepanel

반응형