【问题标题】:Triggering ASP.Net functions from JS and viceversa从 JS 触发 ASP.Net 函数,反之亦然
【发布时间】:2014-03-18 10:45:36
【问题描述】:

我在想我自己是否有更好的实现方法来触发从 JavaScript 到 ASP.Net 的函数,反之亦然。

从 ASP.Net 运行 JS 代码

  1. 创建 asp.net 隐藏值,该值将保留有关内容的信息 行动已完成。 (例如id = hiddenFunctionality
  2. 在 ASP.NET 代码后面,做的功能比 更改 asp.net 隐藏值 (hiddenFunctionality.value = "AddedUser") 以便稍后触发正确的 JS 函数。
  3. 从 JS 方面创建 pageLoad() 方法并在 pageLoad() 方法内 读取asp.net隐藏值if(document.getElementById('contentPage_hiddenFunctionality').value=="AddedUser"){...}

从 JS 运行 ASP.Net 代码

  1. 创建一个隐藏其内容但仍使 ASP.Net 元素仍可单击的 div。
  2. 在 div 中插入 ASP.Net 按钮。 (应该可以解决 __doPostBack(eventTarget, eventArgument),这将删除隐藏的 div 和 ASP.Net 按钮)
  3. 在 JS 触发器 <li onclick="trigger('#contentPage_btn');">Click me to trigger ASP.Net function</li>) 中运行一个方法来简单地触发 ASP.Net 按钮上的单击事件。 function trigger(x){$(x).click();}

可以使用 ASP.Net 隐藏值或查询字符串将数据从一侧传递到另一侧。

【问题讨论】:

  • 你指的是ajax更新面板吗?
  • 不,jQuery AJAX 用于从 JS 运行 ASP.NET 代码。要从 ASP.NET 运行 JS 代码,请按照第 1 行所述进行操作。

标签: javascript asp.net


【解决方案1】:

要从 ASP 注入 JavaScript,你可以这样做 RegisterClientScriptBlock:

Type myType = this.GetType();
if (!ClientScript.IsClientScriptBlockRegistered(someType, "_FROMASP"))
{
    string script = "alert('FROM ASP!');";
    ClientScript.RegisterClientScriptBlock(someType, "FROMASP", script, true);
}

如果您想从 JS 运行 ASP 代码而不使用 AJAX,我认为您走在正确的轨道上。我通常使用带有__doPostBack 的隐藏字段来传递消息而不是DIV。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-07
    • 2021-04-07
    • 2013-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多