Обратная передача в диалоговом окне jQuery UI
У меня есть сетка с несколькими строками. В каждой строке у меня есть кнопка с изображением справа от сетки, которая дает возможность удалить запись.
При нажатии на кнопку с изображением открывается диалоговое окно, созданное с помощью пользовательского интерфейса jQuery.
Код jQuery:
$("[name*='btn_check']").click(function() {
event.preventDefault();
$("#dialog-confirm").dialog({
autoOpen: true,
resizable: false,
height: 200,
modal: true,
buttons: {
"Accept": function() {
$(this).dialog("close");
},
Cancel: function() {
$(this).dialog("close");
}
}
});
});
Код довольно прост и общепринят для диалогового окна jQuery UI.
Итак, теперь я хочу выполнить код, когда кнопка "Принять" нажата, и я, хотя __doPostBack
может быть хорошим решением.
Итак, я создал скрытую кнопку в моем виде сетки (рядом с кнопкой изображения), затем я добавил этот код в функцию "Принять", как я нашел в другом вопросе Stackru:
__doPostBack('btn_hidden', '');
Я также пытался использовать это:
__doPostBack('<%= btn_hidden.UniqueID %>', '');
Но без успеха.
Итак, как правильно выполнить обратную передачу и как я могу отправить идентификатор записи, чтобы удалить эту запись с кодом позади?
1 ответ
Прежде всего, вы должны иметь правильный CommandName
а также CommandArgument
установить на свой ImageButton
, Затем вызовите диалог из OnClientClick
, Как я понял, у вас где-то спрятан только один элемент диалога, поэтому проблем с идентификаторами быть не должно:
<asp:ImageButton runat="server"
CommandName="Delete"
CommandArgument='<%# Eval("YourKeyFieldNameHere") %>'
OnCommand="ImageButton_Command"
OnClientClick="javascript:return showConfirmDialog(this.name)"
/>
function showConfirmDialog(uniqueId) {
$("#dialog-confirm").dialog({
autoOpen: true,
resizable: false,
height: 200,
modal: true,
buttons: {
"Accept": function() {
$(this).dialog("close");
__doPostBack(uniqueId, '');
},
Cancel: function() {
$(this).dialog("close");
}
}
});
return false; // this is to prevent default click handler to cause a postback
}
Codebehind:
protected void ImageButton_Command(object sender, CommandEventArgs e)
{
// e.CommandArgument will contain the record key and
// e.CommandName will be equal to "Delete" or whatever you'll set on aspx
}