gpt4 book ai didi

javascript - 需要强制从不是通过单击按钮启动的 Javascript 回发

转载 作者:行者123 更新时间:2023-11-30 18:23:03 26 4
gpt4 key购买 nike

我需要在我的 ASPX 页面中使用 JavaScript 确认函数来确认基于 C# 代码中条件的各种操作,而不是直接连接到按钮单击事件。例如。如果计算出记录数 > 200,则询问“你想继续吗?”然后根据点击的是或否执行相关操作。我将我的 JavaScript 定义为:

    <script type = "text/javascript">
function Confirm(val) {
var confirm_value = document.createElement("INPUT");
confirm_value.type = "hidden";
confirm_value.name = "confirm_value";
if (confirm(val)) {
confirm_value.value = "Yes";
} else {
confirm_value.value = "No";
}
document.forms[0].appendChild(confirm_value);
}
</script>

然后从代码后面调用它并使用 RegisterStartupScript 和 Request.Form 获取响应,如下所示:

                ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "confirm_value", String.Format("Confirm('{0}');", msgstr), true);
string confirmvalue = Request.Form["confirm_value"];

确认框出现,但确认值字符串始终在“后面”。也就是说,如果我在“确认”框中单击"is",它会返回“否”;但是如果我停留在同一页面上并第二次执行该过程并单击“否”,我将返回"is";等等。问题:如何强制回发 confirmvalue 以便我可以及时访问代码隐藏中的响应?

最佳答案

可能有四种方法可以实现此目的,有/没有回发:-

  1. 在代码隐藏文件中的方法上使用 AjaxMethod 属性,如下所示:-

    [AjaxMethod(HttpSessionStateRequirement.ReadWrite)]
    公共(public)对象 DoSomething(int countValue)
    {
    //做一点事
    }

    然后从 ascx 文件中,您将能够通过执行类名点方法名来调用方法。在这里,在这种情况下,方法名称是 DoSomething。

  2. 如果您在 ascx 文件中使用 ScriptManager,则可以通过将脚本管理器的 EnablePageMethods 属性设置为 true 来启用页面方法调用。但是,您调用的方法应该是静态的。 MSDN link

    公共(public)静态对象 DoSomething(int countValue)
    {
    //做一点事
    }

    在这里,您将能够直接从您的 JS 调用该方法。

  3. 使用网络服务如下:-

    [脚本服务]
    公开课 YourService
    {
    [网络方法(启用 session =真)]
    公共(public)对象 DoSomething(int countValue)
    {
    //做一点事
    }
    }

  4. 回传方式:-

    如果(IsPostBack)
    {
    string ControlID = string.Empty;
    如果 (!String.IsNullOrEmpty(Request.Form["__EVENTTARGET"]))
    {
    ControlID = Request.Form["__EVENTTARGET"];
    控件 postbackControl = Page.FindControl(ControlID);
    }
    }

关于javascript - 需要强制从不是通过单击按钮启动的 Javascript 回发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32828044/

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