문제

GridView 자체에 항목을 입력하기 위해 GridView와 4 개의 필드가 포함 된 ModalPopup이 있습니다.

모달을 열어 두면서 서버에 포스트 백을 게시하고 그리드 뷰를 업데이트 할 수 있습니까?

필드를 제출하고 포스트 백이 발생하면 모달 닫기가 전에이 작업을 수행 한 사람이 있습니까? 누군가 jQuery를 사용하여 해결책을 언급했지만 이것은 오래 전이었습니다.

도움이 되었습니까?

해결책

이를 수행하는 열쇠는 Microsoft.ajax 또는 JQuery Ajax의 풍미의 Ajax를 사용하는 것입니다. UpdatePanel이 작동하지 않는 경우 jQuery를 사용하여 AJAX를 사용하여 서버에 다시 제출하는 것이 좋습니다. 여기에는 서버 측의 Ajax 게시물을 수락하기위한 웹 메드를 작성하고 jQuery를 사용하여 클라이언트 측에 요청을 보내거나 응답을받는 것이 포함됩니다. HTML을 보지 않으면 매우 구체적이기가 어렵습니다.

기본 아이디어 :

 $(function() {
    $('#modalSubmitButton').click( function() {
       $.ajax({
           url: 'path-to-your-web-method',
           dataType: 'json',  // or html, xml, ...
           data: function() {
               var values = {};
               values['field1'] = $('#field1ID').val();
               ...
               values['field4'] = $('#field4ID').val();
               return values;
           },
           success: function(data,status) {
              ... update page based on returned information...
           }
           ... error handling, etc. ...
       });
       return false; // stop any default action from the button clicked
    });
 });

다른 팁

업데이트 패널에서 팝업의 컨텐츠를 포장 (예 : 팝업 자체가 아님)이 저에게 효과적이었습니다.

내 팝업 콘텐츠는 정렬 가능/pagable 결과의 검색 패널입니다. UpdatePanel은 추가 코드없이 필요한 정확한 동작을 제공했습니다.

감사합니다 Patel Shailesh 아이디어를 위해.

<asp:Panel runat="server" ID="PopupPanel" Height="650" Width="900" Style="display: none">
    <asp:UpdatePanel runat="server" ID="UpdatePanel1">
        <ContentTemplate>
            <!-- popup content -->
        </ContentTemplate>
    </asp:UpdatePanel>
</asp:Panel>

<ajax:ModalPopupExtender runat="server" ID="PopupExtender" PopupControlID="PopupPanel"  
    TargetControlID="PopupButton" />
<asp:Button runat="server" ID="PopupButton" Text="Popup" />

이것이 작동하는지 확실하지 않지만 ModalPopup 내부에 무엇이든 업데이트 패널을 넣으십시오.

제발이 작동한다면 당신이 풀린 후 나를 미워하지 않는다. 나도 업데이트 패널도 싫어

일종의 추악한 옵션은 처음에 모달 팝업을 보여줄 때 포스트 백을 강제하고 viewstate [ "modelpopupon"] = true를 설정하는 것입니다. 그런 다음 페이지로드에서 확인한 후 다시 게시 한 후 팝업을 닫을 때 ViewState에서 False로 설정/제거하십시오.

(이러한 종류의 문제는 내가 Ajax 툴킷을 싫어하는 이유입니다)

나는 modalpopupextender를 실험하고 추악한 솔루션을 찾았습니다. 모달 패널에 포스트백이 발생하는 버튼이있는 경우

<asp:Panel runat="server" ID="PopupPanel" Height="650" Width="900" Style="display: none">
    <asp:Button ID="OkButton" runat="server" Text="OK" OnClick="OkBtn_Click"  />
</asp:Panel>

Code-Behind의 OKBTN_CLICK가 다음을 호출하는 경우 :

System.Web.HttpContext.Current.Response.Write("<script></script>");

그런 다음 modalpopupextender가 닫히지 않습니다. 이것은이 사람에게도 일어났다 :http://forums.asp.net/t/1591860.aspx

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top