2009-06-23 5 views
1

Ich habe eine ModalPopup, die eine Gridview und 4 Felder enthält, um Elemente in die Gridview selbst einzugeben.PostingBack von ModalPopup, aber es sichtbar zu halten?

Ist es möglich, auf den Server zu posten und die Gridview zu aktualisieren, während das Modal geöffnet bleibt?

Wenn Sie die Felder übermitteln und das Postback auftritt, schließt das Modal, hat das jemand schon mal gemacht? Jemand erwähnte eine Lösung mit jQuery, aber das war lange her.

+0

Welche ModalPopup verwenden Sie? Könnten Sie den Link dazu posten? – Merritt

Antwort

1

Die Um dies zu tun, verwenden Sie AJAX mit einem gewissen Geschmack - Microsoft.Ajax oder jQuery Ajax. Wenn das UpdatePanel nicht funktioniert, würde ich vorschlagen, jQuery zu verwenden, um es mithilfe von AJAX an den Server zu senden. Dies würde das Erstellen eines WebMethods beinhalten, um den AJAX-Post auf der Serverseite zu akzeptieren und die Client-Seite mit jQuery zu instrumentieren, um die Anfrage zu senden/die Antwort zu erhalten. Ohne Ihren HTML-Code zu sehen, ist es etwas schwierig, genau zu sein.

Grundidee:

$(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 
    }); 
}); 
0

Ich bin nicht sicher, ob dies funktionieren würde, aber versuchen, was auch immer in einem Update innerhalb des Modalpopup zu setzen

Bitte, ob das funktioniert mich nicht hassen, nachdem Sie loslassen, ich hasse Update zu

+0

Ich habe das versucht, kein Glück – jr3

+0

Sorry dafür, wir sollten es trotzdem versuchen :) – bashmohandes

0

Eine Art hässlich Option ist ein Postback zu erzwingen, wenn das modale Popup in erster Linie zeigen, und ein Ansichtsstatus Einstellung [ „ModelPopupOn“] = true; und dann überprüfen, dass beim Laden der Seite und schließlich postback erneut und setzen Sie es auf false/entfernen Sie es aus viewstate beim Schließen des Popup.

(diese Art von Fragen, warum ich das Ajax Toolkit hassen)

3

den Inhalt des Popup-Wrapping (das heißt nicht das Popup selbst!) In einem Update für mich gearbeitet.

Mein Popup-Inhalt ist ein Suchfeld mit sortierbaren/auslagerbaren Grid der Ergebnisse. Das UpdatePanel gab mir genau das Verhalten, das ich ohne zusätzlichen Code benötige.

Dank Patel Shailesh für die Idee.

<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" /> 
0

Ich experimentierte mit dem Modalpopupetender, und finde eine hässliche Lösung. Wenn die modale Panel verfügt über eine Schaltfläche, die die Postbacks

<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> 

passieren macht Wenn der OkBtn_Click in dem Code-Behind-Anruf muss:

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

Dann werden die ModalPopupExtender nicht geschlossen. Dies ist auch zu diesem Typ passiert: http://forums.asp.net/t/1591860.aspx