【问题标题】:Update javascript variable in .Net Codebehind更新 .Net Codebehind 中的 javascript 变量
【发布时间】:2012-04-10 16:40:02
【问题描述】:

我正在尝试在回发时更新 JavaScript 变量。我正在考虑使用 ClientScript.RegisterStartupScript 函数。它适用于初始页面加载,但不适用于回发。我在 page_load 函数中添加了以下行。我假设发生的事情是,如果添加了一次密钥,则第二次无法再次添加。我有一个母版页和内容页。我从内容页面调用它。

ClientScript.RegisterStartupScript(typeof(Page), "SymbolError", "<script type='text/javascript'>alert('Error !!!');</script>");

有没有办法只从后端调用 JavaScript 函数?

谢谢

【问题讨论】:

  • 你想做什么?也许还有其他选择

标签: javascript asp.net .net


【解决方案1】:

试试这个方法:

语法

   public void RegisterOnSubmitStatement (
        Type type,
        string key,
        string script

)

用法

将此代码放置在页面加载时会使脚本在网络表单的每次提交点击时触发。

if (!script.IsClientScriptBlockRegistered(this.GetType(), "SubmitScript"))
        {
            script.RegisterOnSubmitStatement(this.GetType(), "SubmitScript", "alert('Submit Clicked')");
        }

考虑下面的代码

protected void Page_Load(object sender, EventArgs e)
    {    
ClientScriptManager script = Page.ClientScript;
if (!script.IsClientScriptBlockRegistered(this.GetType(), "SubmitScript"))
     {
          script.RegisterOnSubmitStatement(this.GetType(), "SubmitScript", "return confirm('Are you sure to continue')");
     }
    }
    protected void btnSubmit_Click(object sender, EventArgs e)
    {
        Response.Write("Form is Submitted.");
    }

【讨论】:

  • 我正在使用网格,但没有意识到当我从一条记录更改为另一条记录时会触发 RegisterOnSubmitStatement。每次我从一个记录更改为另一个记录时,它都会进行回发。效果很好。谢谢。
【解决方案2】:

您可以在您的 aspx 页面上的脚本块中放置一个 asp:Literal。

然后在您的代码后面,只需将变量赋值作为文本放入文字中。它将作为您的 javascript 代码的一部分呈现。

【讨论】:

  • 有趣,不知道你能做到这一点。谢谢。
  • 这就是 Literal 的用途。无论您放入其中的任何内容,都将准确呈现到页面上标记中的那个位置。
猜你喜欢
  • 2012-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-02
  • 2018-06-01
  • 1970-01-01
相关资源
最近更新 更多