Estoy desarrollando un ASP.Net MVCsitio y en él enumero algunas reservas de una consulta de base de datos en una tabla con un ActionLinkpara cancelar la reserva en una fila específica con un cierto BookingIdcomo este:
Mis reservas
<table cellspacing="3">
<thead>
<tr style="font-weight: bold;">
<td>Date</td>
<td>Time</td>
<td>Seats</td>
<td></td>
<td></td>
</tr>
</thead>
<tr>
<td style="width: 120px;">2008-12-27</td>
<td style="width: 120px;">13:00 - 14:00</td>
<td style="width: 100px;">2</td>
<td style="width: 60px;"><a href="/Booking.aspx/Cancel/15">cancel</a></td>
<td style="width: 80px;"><a href="/Booking.aspx/Change/15">change</a></td>
</tr>
<tr>
<td style="width: 120px;">2008-12-27</td>
<td style="width: 120px;">15:00 - 16:00</td>
<td style="width: 100px;">3</td>
<td style="width: 60px;"><a href="/Booking.aspx/Cancel/10">cancel</a></td>
<td style="width: 80px;"><a href="/Booking.aspx/Change/10">change</a></td>
</tr>
</table>
Lo que sería bueno es si pudiera usar el jQuery Dialogpara abrir un mensaje preguntando si el usuario está seguro de que quiere cancelar la reserva. He estado intentando que esto funcione, pero sigo atascado en cómo crear una función jQuery que acepte parámetros para poder reemplazar el
<a href="https://stackoverflow.com/Booking.aspx/Cancel/10">cancel</a>
con
<a href="#" onclick="ShowDialog(10)">cancel</a>.
La ShowDialogfunción luego abriría el cuadro de diálogo y también pasaría el parámetro 10 al cuadro de diálogo de modo que si el usuario hace clic en sí, se publicará el href:/Booking.aspx/Change/10
He creado el jQuery Dialog en un script como este:
$(function() {
$("#dialog").dialog({
autoOpen: false,
buttons: {
"Yes": function() {
alert("a Post to :/Booking.aspx/Cancel/10 would be so nice here instead of the alert");},
"No": function() {$(this).dialog("close");}
},
modal: true,
overlay: {
opacity: 0.5,
background: "black"
}
});
});
y el diálogo en sí:
<div id="dialog" title="Cancel booking">Are you sure you want to cancel your booking?</div>
Así que finalmente a mi pregunta: ¿Cómo puedo lograr esto? ¿O hay una mejor forma de hacerlo?