gpt4 book ai didi

jquery - DoPostback刷新页面但没有捕获事件处理程序

转载 作者:行者123 更新时间:2023-12-01 01:33:28 25 4
gpt4 key购买 nike

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

我需要一个模式对话框来在我的代码中进行确认,所以我使用这个 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 事件,但它只是刷新页面,并没有调用我的 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 声明的情况下,这是我最好的猜测。

您需要使用按钮的唯一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

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

关于jquery - DoPostback刷新页面但没有捕获事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25041404/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com