【问题标题】:asp.net button control inside jquery-ui modal confirmationjquery-ui模态确认内的asp.net按钮控件
【发布时间】:2012-07-05 11:18:19
【问题描述】:

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

【问题讨论】:

    标签: asp.net jquery-ui


    【解决方案1】:

    默认情况下,jQuery 对话框会克隆 dom 元素并将它们放在正文的末尾。

    这在表单标签之外。

    由于在form标签之外,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.
    
    }
    

    【讨论】:

    • 我发现你在元素方面的偏差,但我不确定我理解你所说的代码是什么意思。你的意思是说 var popup = ... 模式窗口的行为会有所不同,也就是说它不会复制 dom 元素?我还对关于 onclientclick 的问题添加了一个小改动
    • 这段代码将为所有具有class="confirmation" 的元素运行,并将它们放回表单标签中。这将确保您的按钮点击被 asp.net 检测到。我看到了你的变化,但是当你打电话给dialog 没关系。它总是将内容放在正文的末尾。此代码应在您调用 dialog 后运行。我会更新答案。
    【解决方案2】:

    我发现了这个帖子: http://www.aspsnippets.com/Articles/How-to-make-ASPNet-Button-do-PostBack-in-jQuery-Modal-Dialog-Popup.aspx

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多