je un certain nombre de serverside générés HyperliensJQuery UI boîte de dialogue modale déclenchement ASP.Net UpdatePanel commande
<a id="ctl00_ContentPlaceHolder1_APMySlides_unlinkImage_2428_1" title="Click Here to remove this image from this application." class="APMySlides_unlinkImage" href="#"></a>
<a id="ctl00_ContentPlaceHolder1_APMySlides_unlinkImage_2428_2" title="Click Here to remove this image from this application." class="APMySlides_unlinkImage" href="#"></a>
<a id="ctl00_ContentPlaceHolder1_APMySlides_unlinkImage_2428_3" title="Click Here to remove this image from this application." class="APMySlides_unlinkImage" href="#"></a>
<a id="ctl00_ContentPlaceHolder1_APMySlides_unlinkImage_2424_3" title="Click Here to remove this image from this application." class="APMySlides_unlinkImage" href="#"></a>
Une section pour déclencher la mise à jour
<asp:HiddenField ID="delhiddenfield" runat="server" />
<asp:Button ID="lauchdelete" runat="server" Text="" OnClick="removeLink" CssClass="lauchdelete" style="display:none;" />
<div id="deleteconfirm" title="Are you sure?" style="display:none;">Are you sure you want to remove this image from this application?</div>
un petit peu de JQuery qui appelle une autre fonction quand une clique dessus
var del = '<%=delhiddenfield.ClientID %>';
$(function(){
$('.APMySlides_unlinkImage').click(function (event) { triggerdel(event); });
});
function triggerdel(event) {
var caller = event.target || event.srcElement;
// get the id vals
var idsplit = caller.id.split("_");
if (idsplit.length > 2) {
$('#' + del).val(idsplit[idsplit.length - 2] + "_" + idsplit[idsplit.length - 1]);
$("#deleteconfirm").dialog({
resizable: false,
height: 140,
modal: true,
buttons: {
"Delete": function() {
// this section is supposed to trigger the update
$('.lauchdelete').click();
$('#' + del).val('');
},
Cancel: function() {
$(this).dialog("close");
}
}
});
}
}
Si je mets un OnClientClick = "alert ('woo lauchdelete cliqué')" dans le bouton launchdelete il se déclenche mais mon code derrière n'appelle pas. Cependant, si je supprime la boîte de dialogue modale comme suit:
function triggerdel(event) {
var caller = event.target || event.srcElement;
// get the id vals
var idsplit = caller.id.split("_");
if (idsplit.length > 2) {
$('#' + del).val(idsplit[idsplit.length - 2] + "_" + idsplit[idsplit.length - 1]);
$('.lauchdelete').click();
$('#' + del).val('');
}
}
Le code fonctionne correctement et déclenche le code. La seule différence que je peux voir est le contrôle du dialogue, mais pourquoi? Est-il possible de déclencher le contrôle comme prévu, en appuyant sur le bouton de suppression de la boîte de dialogue modale?
Merci, l'enveloppe "$ ('lauchdelete'). Cliquez sur()" dans un setTimeout de 0 a fonctionner à la fin. – kamui