3

首先我应该提一下,我花了一整天的时间搜索,无法弄清楚我的代码有什么问题以及为什么它不起作用......

我需要一个模态对话框来确认我的代码,所以我使用这个 jQuery 模态对话框:JQuery Confirm

我需要的是将此功能嵌入<asp:Button>...

我的问题是,当我单击按钮时,对话框弹出,但是是/否按钮不起作用,两者都只是消失了对话框。

我也使用下面的代码,但__doPostBack()根本没有做任何事情,但它完美地运行了简单的 js 代码,如 alert(''):

$("#complexConfirm").confirm({
     title: "Redirect confirmation",
     text: "This is very dangerous, you shouldn't do it! Are you really really sure?",
     confirm: function (button) {
         __doPostBack('complexConfirm', 'OnClick');
     },
     cancel: function (button) {
         return false;
     },
     confirmButton: "Yes",
     cancelButton: "No"
});

我搜索和对话原因元素位于表单元素之外,因此我应该将其带回表单,但我不知道如何尝试下面的代码并且它没有

$("#editEventModal").parent().appendTo(jQuery("form:first"));

另一个问题是我尝试在没有对话框的情况下使用 javascript 事件回发,我使用 2 个按钮一个用于调用 javascript,另一个用于调用它,但是当我使用 __doPostBack 它刷新页面但不会出现在代码中的我的按钮事件-在后面,我尝试了几种调用按钮 onClick 事件的方法,但它只是刷新页面,并没有调用我的按钮 OnClick Mehtod !!!

按钮声明如下:

<asp:Button ID="complexConfirm" ClientIDMode="Static" runat="server" OnClick="TestBTN_Click" Text="Test" />
<asp:Button ID="checkit" ClientIDMode="Static" runat="server" OnClientClick="__doPostBack('<%=complexConfirm.UniqueID%>', '');" Text="CHECK" />

这两个问题我该怎么办?

我搜索了很多,但没有一个解决方案对我有用!!!

我将不胜感激任何解决方案,谢谢。

4

1 回答 1

1

在不知道您的 asp:button 声明的情况下,这是我最好的猜测。

您需要使用按钮的唯一ID,即按钮的“名称”属性,而不是ID。

__doPostBack('<%=complexConfirm.UniqueID%>', '');

另外,由于它是一个按钮,因此您实际上不需要指定 OnClick

编辑:我创建了一个工作示例,展示了我认为您要完成的工作。您可以根据需要将其定制为您的 jQuery 确认。

aspx:

<asp:Button ID="btnTest1" runat="server" Text="Test1" OnClick="btnTest1_Click" />

javascript:

<script>
    $('#<%=btnTest1.ClientID%>').confirm({
        text: "This is very dangerous, you shouldn't do it! Are you really really sure?",
        title: "Confirmation required",
        confirm: function (button) {
            // do something
            __doPostBack('<%= btnTest1.UniqueID%>', '');
        },
        cancel: function (button) {
            // do something
        },
        confirmButton: "Yes I am",
        cancelButton: "No",
        post: true
    });
</script>

后面的代码:

protected void btnTest1_Click(object sender, EventArgs e)
{
    Response.Write("You clicked YES");
}

我认为问题的一部分是您的事件名称没有以您的按钮名称命名。如果使用我认为是的 autoEventWireup,那么您的事件将不会触发,因为它找不到具有匹配名称的事件。

所以,我做的第一件事就是消除 StaticClientID。您仍然可以将 jquery 与 asp.net 生成的 ID 一起使用。然后我确保事件被命名btnTest1_Click,因为按钮的名称是btnTest1

我不确定您为什么需要另一个按钮,因为您似乎只是在提交按钮之前进行确认。

于 2014-07-30T20:03:56.000 回答