2013-11-21 15 views
5

Ho un div che viene mostrato come una finestra di dialogo Modale.Pulsante ASP al momento del clic che non funziona utilizzando la finestra di dialogo modale di Jquery

<div id="div2" style="display: none;" title="Upload Prenda"> 
     <center> 
      <br /> 
      Select File to Upload: 
      <asp:FileUpload ID="PrendaFileUpload" runat="server" Width="345px" /> 
      <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="PrendaFileUpload" 
       ErrorMessage="File to be uploaded Required" ValidationGroup="X">*</asp:RequiredFieldValidator><br /> 
      <asp:ValidationSummary ID="ValidationSummary1" runat="server" ShowMessageBox="True" 
       ShowSummary="False" ValidationGroup="X" /> 
      <br /> 
      &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
      <asp:Button ID="uploadButton" runat="server" Text="Upload" OnClick="uploadButton_Click" 
       Width="100px" /> 
     </center> 
    </div> 

Ecco l'jquery per esso

<script type="text/javascript"> 
$(function() { 
$("#div2").dialog({ 
autoOpen: false, 
modal:true, 
resizable: false, 
height: 200, 
width: 600 
}); 
$("#toggle").click(function() { 
$("#div2").dialog("open"); 
}); 
}); 
</script> 

il problema è se si preme il pulsante per attivare il OnClick="uploadButton_Click" il metodo interno non si attiva, nessuna correzione di questo? scusa, sono appena arrivato a usare jquery.

+1

Penso che troverete che il problema è che le finestre di dialogo di jQuery sono fatte in modo tale da rimuoverle dai normali tag del modulo ASP.NET. Ho avuto questo problema circa un anno fa e non ricordo esattamente cosa ho fatto, o dove ho trovato la risposta. Abbastanza sicuro che fosse su questo sito da qualche parte. Se riesco a trovarlo, aggiornerò questo con un collegamento alla risposta. C'era una soluzione piuttosto semplice, è difficile da trovare. –

risposta

13

Beh, questa è la risposta che ha lavorato per me, im non utilizza alcun pannello di aggiornamento e questo è quello che ho usato

aggiungendo questo alla dichiarazione finestra di dialogo:

open: function(type,data) { 
    $(this).parent().appendTo("form"); 
    } 

trovato la risposta in here così se vuoi saperne di più clicca sul link accanto :)

+0

Grazie, ha funzionato per me :) –

0

provare questa soluzione: jQuery modal dialog with postbacks in ASP.NET

Questo dice jQuery per aggiungere la finestra di dialogo per il tag form, piuttosto che alla fine del documento.

+0

@TylerDurden la soluzione di cui sopra non ha funzionato per me, im utilizzando 1.8 jquery UI – user2705620

+0

scuse @ user2705620 ma ho appena ricevuto la notifica di questo commento. Suppongo che tu abbia risolto questo problema adesso? ;) –

+0

oh sì l'ho già risolto e contrassegnato come risposta sopra :) – user2705620

1

Le versioni più recenti di JQueryUI usano una convenzione leggermente diversa. Nella tua dichiarazione .dialog(), aggiungere questo è un parametro:

appendTo: "form", 

Questo risolve il problema per le nuove versioni di jQuery, dato che produce la finestra di dialogo al di fuori del campo di applicazione del modulo ASP.NET. Spero che questo aiuti i nuovi utenti!

0

Questa query genererà il codice C# da JQuery. L'ho provato:

$(this).parent().appendTo($("form:first")); 
Problemi correlati