我正在删除一个项目,并希望在执行所有与LINQ相关的删除之前弹出一个确认窗口。
我想要的是加载到模态确认窗口然后执行服务器端功能。
页面上的按钮:
<input type="button" onclick="deleteConfirmation();" value="Eyða korti" id="btnDelete"/>
javascript基本上来自jquery-ui示例页面。 我不想要按钮
function deleteConfirmation() {
$(".confirmation").dialog({
resizable: false,
height: 350,
modal: true,
});
}
加载到模态窗口的标记:
<div class="confirmation" style="display:none;">
Do you really want to delete...
<asp:Button ID="btnDelete" runat="server" Text="Delete" OnClick="btnDelete_Click" />
<input type="button" value="Cancel" class="button" />
毋庸置疑,OnClick事件不会启动。 我如何获得所需的功能。
编辑: 我也试过了其他东西
我将按钮放在对话框中,然后返回true / false 然后在asp按钮上使用onclientclick =“return deleteConfirmation()”,因为服务器端代码运行但是弹出窗口没有等待用户输入,因此达到了一定程度。
答案 0 :(得分:3)
默认情况下,jQuery对话框克隆dom元素并将它们放在body的末尾。
这是在表单标记之外。
由于它位于表单标记之外,因此asp.net不会收到这些事件。
你需要将dom放回到表单中。 像这样:
function deleteConfirmation() {
$(".confirmation").dialog({
resizable: false,
height: 350,
modal: true,
});
//dialog put the asp elements outside form, bring it back
$(".confirmation").each(function() {
var popup = $(this);
popup.parent().appendTo($("form:first"));
});
//asp.net has its precious elements back into the form tag.
}
答案 1 :(得分:0)
我希望您从点击事件中获得回发的方式会更容易一些。