【问题标题】:Pass a value to javascript from code behind将值从后面的代码传递给 javascript
【发布时间】:2018-12-17 11:07:41
【问题描述】:

我需要将值从后面的代码传递给 javascript。

ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "script", "<script type='text/javascript'>OpenPopUp();</script>", false);

JS:

function OpenPopUp(parameterValue) {           
        paramframe = parameterValue;            
        openmodal(paramframe);
    }

所以parameterValue 将具有从后面的代码传递的 ID.Text 值。

我需要将这个函数 OpenPopUp 后面代码中的值传递给 javascript。

我尝试了下面的代码,但 javascript 没有触发。我是否将正确的值传递给 JS。

ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "script", "<script type='text/javascript'>OpenPopUp(" + ID.Text + ");</script>", false);

ID.Text 是网格视图中 LinkBut​​ton 的 ItemTemplate 值。

【问题讨论】:

  • 您的浏览器是否有任何控制台错误?
  • 不传参数也行吗?
  • @erikscandola - 我没有收到任何错误。发送值时,JS 函数不会触发。
  • @Haldo - 无需传递参数即可正常工作。
  • @Learner 我只看到了一个问题。如果OpenPopUp(" + ID.text + "); 将包含类似Hello Word 的文本。所以OpenPopUp(Hello Word) 抛出了一个错误。用这种方式试试:OpenPopUp('" + ID.text + "');

标签: javascript c# asp.net webforms


【解决方案1】:

试试这个,应该可以的

ScriptManager.RegisterStartupScript(this, typeof(string), "script1", "SampleJSFunction('" + vls_variable.Text+ "');", true);

【讨论】:

    【解决方案2】:

    通常我会使用隐藏参数并像这样从 javascript 和 C# 访问它

    ASP.NET

    <asp:HiddenField runat="server" ID="HiddenFieldID" />
    

    javascript

    var FieldName= document.getElementById('<%=HiddenFieldID.ClientID%>').value;
    

    和 C#

    var x = HiddenFieldID.Value
    

    注意隐藏字段的值是字符串。我更喜欢这种方式,这样代码以后更容易维护。

    【讨论】:

      猜你喜欢
      • 2011-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-06
      • 2017-05-11
      • 2013-09-23
      • 2013-11-20
      相关资源
      最近更新 更多