从C#代码后面向Javascript函数传递一个值
本文关键字:一个 函数 代码 Javascript | 更新日期: 2023-09-27 18:20:59
我在.aspx文件中有这个javascript函数。
<script>
function somefun(value)
{
}
<script>
我正在代码隐藏类中调用该函数并将值传递给该函数。
ScriptManager.RegisterStartupScript(this, typeof(string), "Passing", String.Format("somefun('{0}');", filePath1), false);
但当它运行时,该函数无法正常工作。我得到一个像这样的打印输出
"somefun(变量的内容)"
问题出在哪里?
尝试使用:
ScriptManager.RegisterStartupScript(this, typeof(Page), "Passing", String.Format("somefun('{0}');", filePath1), false);
来源:http://msdn.microsoft.com/it-it/library/bb350750(v=vs.110).aspx
首先,我喜欢使用一个函数在客户端浏览器上执行Javascript代码。。。
#region ExecuteJavascript
private int _intScriptIndex = 0;
private void ExecuteJavascript(string strScript)
{
System.Web.UI.ScriptManager.RegisterStartupScript(Page, typeof(Page), "ExecuteScript" + _intScriptIndex++, strScript, true);
}
#endregion
现在我只是这样调用JavaScript。。。
ExecuteJavascript("alert('test');");
要调用带有变量的函数,您可以这样做。。。
ExecuteJavascript(String.Format("somefun('{0}');", filePath1));
这样就可以了。为什么我的有效而你的无效的关键可能是在RegisterStartupScript的属性中,请注意,我将Page和typeof(Page)传递到你放置字符串的位置。
请尝试此
ScriptManager.RegisterStartupScript(this, typeof(string), "Passing", "somefun('" + filePath1 + "');" ,false);
这应该可以工作。
C#代码:
String vls_variable = "TestData";
ScriptManager.RegisterStartupScript(this, typeof(string), "script1", "SampleJSFunction('" + vls_variable + "');", true);
JavaScript函数:
function SampleJSFunction(variable)
{
var data = variable;
alert("working");
}