【问题标题】:How to call a asp button controls click event from another html(client side) button Control?如何从另一个html(客户端)按钮控件调用asp按钮控件单击事件?
【发布时间】:2013-01-18 12:47:45
【问题描述】:

我正在处理 ASP.NET Gridview 行删除,它工作正常。但是当我尝试添加弹出删除确认时,出现了一些问题。

我的删除按钮标签是:

<asp:TemplateField>
<ItemTemplate>
   <asp:Button  ID="btnDelete" runat="server" CssClass="CoolButtons" Text="Delete"           CommandName="Delete"  OnClick="btnEdit_Click" CommandArgument='<%# Container.DataItemIndex%>'/>
 </ItemTemplate>
</asp:TemplateField>

现在,我为弹出窗口添加了一些脚本。注意:我使用隐藏字段来使用服务器端删除事件的值。

//***** 'Yes' button Click on Popup *****
            $("#btnYes").click(function (e) {
                HideDialog();
                e.preventDefault();
            });

            //***** 'No' Button click on Popup *****
            $("#btnNo").click(function (e) {

                $('input[id="hdnConfirmDelete"]').val("no");
                HideDialog();
                e.preventDefault();
            });

            //***** 'Delete' Button click on server ****
            $('input[value="Delete"]').click(function (e) {
               ShowDialog(true);
               e.preventDefault();


            });
 //**** Function to Open Dialog ***
            function ShowDialog(modal) {
                $("#overlay").show();
                $("#dialog").fadeIn(300);

                if (modal) {
                    $("#overlay").unbind("click");
                }
                else {
                    $("#overlay").click(function (e) {
                        HideDialog();
                    });
                }
            }
            //**** Function to Close Dialog ****
            function HideDialog() {
                $("#overlay").hide();
                $("#dialog").fadeOut(300);
            }

现在的问题是我无法触发OnClick="btnEdit_Click",我知道它的服务器端。当我单击删除确认对话框上的“Yes”按钮时,有什么方法可以触发删除按钮的OnClick 事件? 注意:对话框由简单的 HTML 标记组成。

【问题讨论】:

  • 您知道原生 javascript 确认(请参阅developer.mozilla.org/en-US/docs/DOM/window.confirm)吗?这可以使确认删除意图变得更加容易,尽管我很感激您可能希望自定义外观和感觉,而确认对话是不可能的 - 这可能就是您选择这条路线的原因。

标签: c# jquery asp.net


【解决方案1】:

当您编写 e.preventDefault() 时,它会阻止按钮原来的工作方式意味着服务器端代码执行。
所以用这个

 $("#btnYes").click(function (e) {
            HideDialog();
        });

删除 e.preventDefault();
这是一个链接,您可以从中更好地理解

http://api.jquery.com/event.preventDefault/

编辑1:-

使用这个

 $("#btnYes").click(function (e) {
            $('input[id="hdnConfirmDelete"]').val("yes");
            HideDialog();
        });

【讨论】:

  • 是的,它现在触发事件。但是我可以在单击对话框$('input[id="hdnConfirmDelete"]').val("yes");上的“是”按钮后更改隐藏字段的值@
  • @TamalKantiDey 我已经编辑了我的答案,请按照建议使用。
猜你喜欢
  • 1970-01-01
  • 2011-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-31
  • 2016-08-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多