2008-09-03 2 views

답변

6

당신은

MyModalPopoupExtender.Show() 
3
protected void Page_Load(object sender, EventArgs e) 
{ 
    if (Page.IsPostBack) 
    { 
     // reshow 
     MyModalPopup.Show() 
    } 
} 
1

을 닫는 모달 팝업 창을 방지하기 위해 다시 게시하는 동안 Show() 메서드를 호출 할 수 있습니다 같아요 작품이 있지만 내 경우이다. 모달 팝업에서 연 사용자 컨트롤이 있는데이 사용자 정의 컨트롤은 포스트 백을 만듭니다. 그래서 그 사용자 컨트롤에 모달 팝업 속성이 없습니다.

제 생각에는 사용자 컨트롤을위한 이벤트를 만들고 모달 팝업을 여는 페이지는이 이벤트에서 다시 열어야합니다.

1

모달 팝업은 클라이언트 측에서만 사용할 수 있습니다. 예를 들어 포스트 백 중에 정보를 수집 할 수는 있지만 다시 게시하면 100 % 시간을 숨길 수 있습니다.

물론 다른 제안처럼 포스트 백 중에 .show를 할 수 있지만 수행해야하는 작업에 따라 다릅니다.

사실, 일부 유효성 검사를 위해 클라이언트 측에서 수행하려는 경우 왜 다시 게시가 필요한지 알 수 없습니다.

왜 다시 게시해야하는지 알려주세요. 더 잘 도와 줄 수 있습니다. :)

+1

안녕하세요, 귀하의 답변 주셔서 감사합니다.하지만 문제가 실제로 기억 나지 않습니다. –

+1

하하하! ok then XD 괜찮 으면 해결책을 게시 할 수 있습니다 (atm이 작동하는 방식). 나는이 사건에 대해 매우 궁금해서 어떻게 할 수 있는지보고 싶습니다! – ForceMagic

1

이전 사례 다음 ...

Simple.aspx에서 사용자는 회사 이름을 입력해야합니다. 사용자가 회사의 이름을 기억하지 못하면 버튼을 클릭하여 팝업 창을 열 수 있습니다.

내가 모달 창에서 원하는 것은 사용자가 회사 목록을 검색하는 것을 허용하는 것입니다. 그는 부분 이름을 입력하고 검색을 클릭 할 수 있습니다. 일치 항목은 아래 목록에 표시됩니다. 그는 목록의 항목을 클릭하여 돌아올 수 있습니다. 회사가 없으면 '새로 만들기'버튼을 클릭하여 새 회사를 만들 수 있습니다.

여러분도 알다시피이 모달 창에서 많은 기능을 원합니다.

감사합니다!

JC

+0

이 경우 사용자 컨트롤에서 부모 페이지에 사용자 지정 이벤트를 정의하면 모달 팝업을 열 수있는 코드도 작성됩니다. –

9

사용자가 컨트롤 패널에 컨트롤을 넣습니다. 이것은 당신 :

안부를위한 일을 할 것입니다

<asp:Panel ID="pnlControls" runat="server"> 

    <asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
     <ContentTemplate> 
       <asp:Button ID="TestButton" runat="server" Text="Test Button" onclick="TestButton_Click" /> 
      <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>   
     </ContentTemplate> 

    </asp:UpdatePanel> 

, 그레고르 PRIMAR

: 내 샘플 코드를 참조하십시오, pnlControls 팝업에 표시됩니다 컨트롤을 보유하고 컨트롤입니다
+0

잘 작동합니다. 필요한 경우 모달에 전체 컨트롤 집합을 래핑하여 다른 UpdatePanels에 대한 트리거로 더 많은 UpdatePanels를 만들 필요가 없도록 할 수 있습니다. – atconway

1

포스트 백 중에 모달을 열어 두는 것과 같은 문제가있었습니다.

내 솔루션 :

사용의 EventTarget이 다시 게시가 모달의 컨트롤에서 오는 여부를 결정하고 있는지 개방 모델을 유지합니다. 모달이 열려있는 경우 다시 게시는 모달의 컨트롤에서 가져올 수 있습니다.

모달을 포함하는 페이지 컨트롤의로드 이벤트에서. 포스트 백이 의 자식인지 확인합니다. 모달 패널에있는 컨트롤에 있는지 확인합니다.

Protected Sub Control_Load(sende As Object, e As EventArgs) Handles Me.Load 
     If IsPostBack Then 
      Dim eventTarget As String = Page.Request.Params.Get("__EventTarget") 
      Dim eventArgs As String = Page.Request.Params.Get("__EventArgument") 

      If Not String.IsNullOrEmpty(eventTarget) AndAlso eventTarget.StartsWith(Me.UniqueID) Then 
       If eventTarget.Contains("$" + _credentialBuilder.ID + "$") Then 
        ' Postback from credential builder modal. Keep it open. 
        showCredentialBuilder = True 
       End If 
      End If 
     End If 
    End Sub 

사전 렌더링에서 내 플래그를 확인하고 수동으로 모달에게

Protected Sub Control_PreRender(ByVal sende As Object, ByVal e As EventArgs) Handles Me.PreRender 
     If showCredentialBuilder Then 
      _mpeCredentialEditor.Show() 
     End If 
    End Sub 
관련 문제