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

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

我需要的是嵌入这个功能与一个 <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时,它刷新页面,但没有在代码隐藏中出现我的按钮事件,我尝试了几种方法来调用button onClick事件,但它只是刷新页面而不调用我的butoon 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" />

这两个问题该怎么办?

我搜索了很多,没有解决方案为我工作!!!

我会很感激任何解决方案,谢谢。

有帮助吗?

解决方案

不知道你的asp:button的声明,这里是我最好的猜测。

您需要使用按钮的uniqueID,按钮的"名称"属性,而不是它的ID。

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

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

编辑:我创建了一个工作示例,演示了我认为您正在尝试完成的任务。您可以根据需要将其定制为您的jQuery confirm。

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

我不确定为什么你需要另一个按钮,因为看起来你想要做的只是在按钮提交之前确认。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top