1

我正在删除一个项目,并希望在执行所有与 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 事件不会触发。我如何获得所需的功能。

编辑:我也试过antoher的东西

我将按钮放在对话框中,然后返回 true/false 然后在 asp 按钮上设置 onclientclick="return deleteConfirmation()" ,因为服务器端代码运行但弹出窗口不等待用户输入.

4

2 回答 2

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.

}
于 2012-07-05T11:25:06.630 回答
0

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

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

于 2013-02-13T03:52:39.937 回答