在jquery-ui模态确认中的asp.net按钮控件

时间:2012-07-05 11:18:19

标签: asp.net jquery-ui

我正在删除一个项目,并希望在执行所有与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()”,因为服务器端代码运行但是弹出窗口没有等待用户输入,因此达到了一定程度。

2 个答案:

答案 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)

我发现这篇文章: http://www.aspsnippets.com/Articles/How-to-make-ASPNet-Button-do-PostBack-in-jQuery-Modal-Dialog-Popup.aspx

我希望您从点击事件中获得回发的方式会更容易一些。