gpt4 book ai didi

javascript - JQuery 设置后找不到 .NET 隐藏字段值

转载 作者:行者123 更新时间:2023-12-03 10:15:20 26 4
gpt4 key购买 nike

我在尝试让确认框与 asp 一起使用时遇到了一些困难。我现在的问题是,在我的确认 JavaScript 方法中,我将隐藏字段的值更新为 1 或 0,并且在 ASP 函数中,我检查该值是 1 还是 0。当前隐藏字段值是“”。

前端代码:

<asp:HiddenField ID="txtconfirmmessageValue" runat="server" />
/* redacted code*/
<asp:LinkButton ID="EndSessionLinkButton" CssClass="SessionDashboardButton" runat="server" OnClientClick="return confirmAll();" OnClick="EndSession" Text="CANCEL" ></asp:LinkButton>

Javascript代码:

 function confirmAll() {
if (confirm("You are about to end session. Are you sure you want to do this.")) {
$('#<%=txtconfirmmessageValue.ClientID %>').val(1);
return true;
}
else {
$('#<%=txtconfirmmessageValue.ClientID %>').val(0);
return false;
}
}

ASP.NET 后台代码

protected void EndSession(object sender, EventArgs e)
{
string value = txtconfirmmessageValue.Value;
while (string.IsNullOrEmpty(value))
{
value = txtconfirmmessageValue.Value;
}

if (!Utility.ToBool(txtconfirmmessageValue.Value))
{
return;
}
/* redacted */
}

txtconfirmmessageValue 的值始终为“”并且从未设置,即使我向 javascript 方法添加了警报,该方法在事件触发后警报 asp:hiddenfield 的值。

注意::我还在其中添加了 while 循环,以绕过确认框事件完成之前发生的 asp 回发。我不知道如何推迟回发,直到确认框完成。任何帮助将不胜感激。

最佳答案

由于单击按钮时会触发其他页面事件(例如 Page_Load),因此请确保这些事件不会触发并覆盖控件的值。

页面在 jQuery 设置值之前被回发,因此您需要防止发生回发,直到用户响应确认。

为了在页面上保持相同的行为,确保仍然调用服务器端方法,您需要使用 GetPostBackEventReference 代表按钮进行回发。 .

关于javascript - JQuery 设置后找不到 .NET 隐藏字段值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29900098/

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