从代码隐藏向JavaScript传递值
尝试将代码隐藏的值(abc)传递给JavaScript,但页面失败并且无法加载。语法有问题吗?我注意到,通常<%...%>被突出显示为黄色,但在我的代码中并非如此。从代码隐藏向JavaScript传递值
<script src="../Scripts/jqModal.min.js" type="text/javascript"></script>
<script type="text/javascript">
$().ready(function() { });
$("a").click(function() {
if (this.id == "optionalFeatures_Online") {
var abc = "<%=Variable_codebehind %>";
}
});
</script>
代码ON_LOAD事件背后:
protected override void OnLoad(EventArgs e)
{
Variable_codebehind = "hello world";
}
错误日志文件来自:
Web.HttpUnhandledException”被抛出。 ---> System.Web.HttpException:控件集合不能被修改,因为控件包含代码块(即<%...%>)。
第一绑定值到一个隐藏的控制
然后从隐藏控制
<script src="../Scripts/jqModal.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
$("a").click(function() {
if (this.id == "optionalFeatures_Online") {
var abc = <%=Variable_codebehind %>;
}
});
});
</script>
代码隐藏ON_LOAD事件中获得的价值:
protected override void OnLoad(EventArgs e)
{
Variable_codebehind = HttpUtility.JavaScriptStringEncode("hello world", true);
}
JavaScriptStringEncode上出现红色下划线 - 我需要USING语句吗? – Susan
您可以轻松查看:http://msdn.microsoft.com/en-us/library/dd991914(v=vs.100).aspx –
您可以使用Page.RegisterStartupScript和从Code-Behind传递一些变量。将这个脚本放在一个.js文件,并从代码隐藏调用它的OnLoad方法:
的OnLoad代码隐藏:
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "MyScript", String.Format("MyScript({0});", codeBehindVar));
MyScript.js
function MyScript(myVar)
{
var self = this;
$("a").click(function() {
if (this.id == "optionalFeatures_Online") {
var abc = self.myVar;
}
}
语法看起来没事。你有没有在任何地方声明变量'Variable_codebehind'?它必须是页面类中的“受保护”或“公共”成员,否则它不能从标记中获得。 – Guffa
首先,'$()。ready(function(){});'没有意义。它需要包装你所有的JavaScript来产生任何效果。你也需要说出你想等待什么准备就绪......例如; '$(document).ready(function(){// here here});' – smilledge
如果在'Variable_codebehind'内容中有双引号,那么就搞砸了。 – Lucero