Dopostback aggiorna la pagina ma non cattura il gestore di eventi
-
21-12-2019 - |
Domanda
Prima di tutto dovrei menzionare che trascorro intera giornata alla ricerca e non riesco a capire cosa c'è di sbagliato nel mio codice e perché non funziona ...
Ho bisogno di una finestra di dialogo modale per la conferma nel mio codice, quindi uso questa finestra di dialogo JQuery Modal: jquery Conferma
Quello di cui ho bisogno è incorporare questa funzionalità con un <asp:Button>
...
Il mio problema è che quando clicco sul pulsante il popup di dialogo, ma i pulsanti Sì / NO non funzionano ed entrambi semplicemente scompaiono la finestra di dialogo.
Anche io uso il codice qui sotto ma __doPostBack()
non ha fatto nulla, ma esegue semplici codici JS come Alert ('') Perfettamente:
$("#complexConfirm").confirm({
title: "Redirect confirmation",
text: "This is very dangerous, you shouldn't do it! Are you really really sure?",
confirm: function (button) {
__doPostBack('complexConfirm', 'OnClick');
},
cancel: function (button) {
return false;
},
confirmButton: "Yes",
cancelButton: "No"
});
.
Ricerca e dialogA CAUSA Elemento viene al di fuori dell'elemento modulo quindi dovrei riportarlo al modulo ma non so come provo sotto il codice e non
$("#editEventModal").parent().appendTo(jQuery("form:first"));
.
Un altro PROBELM è provo a prenotare con Event JavaScript senza la finestra di dialogo, utilizzo 2 Pulsante per chiamare JavaScript e un altro per chiamarlo, ma quando uso __Dopostback Aggiorna la pagina ma non viene al mio pulsante Nel Code-Behind, provo diversi modi per chiamare il pulsante OnClick Event ma semplicemente aggiorna la pagina e non chiama il mio Buton OnClick Mehtod !!!
La dichiarazione dei pulsanti è come questa:
<asp:Button ID="complexConfirm" ClientIDMode="Static" runat="server" OnClick="TestBTN_Click" Text="Test" />
<asp:Button ID="checkit" ClientIDMode="Static" runat="server" OnClientClick="__doPostBack('<%=complexConfirm.UniqueID%>', '');" Text="CHECK" />
.
Cosa devo fare per questi due problemi?
Ricerco molto e non delle soluzioni funzionava per me !!!
Apprezzerò qualsiasi soluzione, grazie.
Soluzione
Senza conoscere la dichiarazione del tuo ASP: pulsante, ecco la mia migliore ipotesi.
È necessario utilizzare l'esclusivo del pulsante, l'attributo "nome" del pulsante, non è ID.
__doPostBack('<%=complexConfirm.UniqueID%>', '');
.
Inoltre, dal momento del suo pulsante A, non è effettivamente bisogno di specificare onClick
Modifica: ho creato un esempio di funzionamento che dimostra cosa penso che stai cercando di realizzare. Puoi adattare questo al tuo jQuery confermare secondo necessità.
ASPX:
<asp:Button ID="btnTest1" runat="server" Text="Test1" OnClick="btnTest1_Click" />
.
JavaScript:
<script>
$('#<%=btnTest1.ClientID%>').confirm({
text: "This is very dangerous, you shouldn't do it! Are you really really sure?",
title: "Confirmation required",
confirm: function (button) {
// do something
__doPostBack('<%= btnTest1.UniqueID%>', '');
},
cancel: function (button) {
// do something
},
confirmButton: "Yes I am",
cancelButton: "No",
post: true
});
</script>
.
Codice dietro:
protected void btnTest1_Click(object sender, EventArgs e)
{
Response.Write("You clicked YES");
}
.
Penso che parte del problema sia che il tuo nome evento non è stato nominato con il nome del tuo pulsante. Se si utilizza AutoeventWireup, che penso che tu sia, allora il tuo evento non attiverà perché non riesce a trovare un evento con un nome corrispondente.
Quindi, la prima cosa che ho fatto è stato eliminare lo staticclientid. È ancora possibile utilizzare JQuery con ID generati ASP.NET. Quindi ho creato che l'evento è stato denominato btnTest1_Click
perché il nome del pulsante è btnTest1
Non sono sicuro del motivo per cui hai bisogno dell'altro pulsante, perché sembra che tutto ciò che stai cercando di fare è confermare prima che il pulsante si sottomettersi.