Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 如何从代码隐藏页向javascript传递值?_Asp.net - Fatal编程技术网

Asp.net 如何从代码隐藏页向javascript传递值?

Asp.net 如何从代码隐藏页向javascript传递值?,asp.net,Asp.net,我有一个web应用程序,我想在body onload方法上调用一个方法 我有这样的方法 <body id="pageid1" onload="SetupFeaturedProperty(1,['http://www.brightlogic-estateagents.co.uk/MRUS/upload/918-1.jpg', 'http://www.brightlogic-estateagents.co.uk/MRUS/upload/918-2.jpg', 'http://www.brigh

我有一个web应用程序,我想在body onload方法上调用一个方法

我有这样的方法

<body id="pageid1" onload="SetupFeaturedProperty(1,['http://www.brightlogic-estateagents.co.uk/MRUS/upload/918-1.jpg', 'http://www.brightlogic-estateagents.co.uk/MRUS/upload/918-2.jpg', 'http://www.brightlogic-estateagents.co.uk/MRUS/upload/918-3.jpg', 'http://www.brightlogic-estateagents.co.uk/MRUS/upload/918-4.jpg']);SetupFeaturedProperty(2,['http://www.brightlogic-estateagents.co.uk/MRUS/upload/665-1.jpg', 'http://www.brightlogic-estateagents.co.uk/MRUS/upload/665-2.jpg', 'http://www.brightlogic-estateagents.co.uk/MRUS/upload/665-3.jpg', 'http://www.brightlogic-estateagents.co.uk/MRUS/upload/665-4.jpg']);SetupFeaturedProperty(3,['http://www.brightlogic-estateagents.co.uk/MRUS/upload/38-1.jpg', 'http://www.brightlogic-estateagents.co.uk/MRUS/upload/38-2.jpg', 'http://www.brightlogic-estateagents.co.uk/MRUS/upload/38-3.jpg', 'http://www.brightlogic-estateagents.co.uk/MRUS/upload/38-4.jpg']);SetupFeaturedProperty(4,['http://www.brightlogic-estateagents.co.uk/MRUS/upload/122-1.jpg', 'http://www.brightlogic-estateagents.co.uk/MRUS/upload/122-2.jpg', 'http://www.brightlogic-estateagents.co.uk/MRUS/upload/122-3.jpg', 'http://www.brightlogic-estateagents.co.uk/MRUS/upload/122-4.jpg']);SetupFeaturedProperty(5,['http://www.brightlogic-estateagents.co.uk/MRUS/upload/1076-1.jpg', 'http://www.brightlogic-estateagents.co.uk/MRUS/upload/1076-2.jpg', 'http://www.brightlogic-estateagents.co.uk/MRUS/upload/1076-3.jpg', 'http://www.brightlogic-estateagents.co.uk/MRUS/upload/1076-4.jpg']);">

这些方法的参数可以在一段时间后更改

我想在加载页面时传递参数

我尝试了很多方法将参数从代码隐藏页面传递到这个页面,但都不起作用。 请让我知道一个更好的解决方案


谢谢使用ClientScript.RegisterStartupScript。检查MSDN:


一种方法是在javascript中设置文字标记。例如:

function somemethod()
{
    var number1 = 10;
    var number2 = <asp:Literal ID="litNumberFromCode" runat="server"/>;
    alert(number1 + number2);
}
尝试使用内联c#打印值

使用以下方法:

Page.ClientScript.RegisterStartupScript(this.GetType(), "myScript",getScript(),true);
然后:

private string getScript()
{
  return "SetupFeaturedProperty(etc,etc,etc);";
}

如果您使用的是UpdatePanels,请使用类而不是Page.ClientScript,有多种方法可以做到这一点。您可以使用RegisterClientScript方法注册脚本。可以将body标记设置为服务器控件,并在代码隐藏中设置其onload属性,也可以使用Literal标记。然而,我发现最干净的方法是创建一个JS变量,并用服务器端代码分配它的值,然后在JS代码中使用这个变量:

<script> var someVariable = <%= SomeProperty %>;</script>

这在HTML4中无效,但在所有浏览器中都可以正常工作,并且在HTML5中有效,只要您在属性名称前面加上数据前缀-

您所说的“我想在加载页面时传递参数”是什么意思是否希望在网页加载到浏览器后传递参数,还是希望在网页加载到浏览器时传递参数?我希望在网页加载到浏览器时传递参数。但这种价值观是可以改变的。因此,我想在页面加载之前从代码隐藏中更新这些值。因此,您想使用从代码隐藏中获取的属性呈现HTML吗?我建议删除文字标记,并在代码隐藏中使用带有属性的语法。在JS代码中使用ASP.NET文本标记看起来有点难看。这是真的,加上此方法与intellisence的配合不太好,并且存在一个缺点,使其在视觉上不具吸引力。但正如他们所说,给猫剥皮总有1000种方法。
<script> var someVariable = <%= SomeProperty %>;</script>
<body runat="server" id="body" onload="onLoad(this)" data-someArg="someValue">...
body.Attributes["data-someArg"] = "someValue";