我有以下代码在Page_Load上注册javascript函数(也在Page_Init上尝试过)。 javascript根据页面加载时的参数将两个面板从隐藏切换到显示:
protected void Page_Load(object sender, EventArgs e)
{
String switchAction = "<script language='javascript'>switchactionpanel(" + (int)((Global.upAction)Enum.Parse(typeof(Global.upAction), Global.ProfileAction.ToString())) + ")</script>";
Page.RegisterClientScriptBlock("switchaction", switchAction);
}
但是当页面加载时我收到一个错误:$未定义。
我查看了Firebug并且正在加载jQuery文件,但是.Net选项卡中加载的第一个文件是页面本身。我知道jquery是正确的,因为相同的代码在不同的页面上工作。我的RegisterClientScriptBlock应该放在页面生命周期中哪里可以在页面加载时正常工作?或者我是不是错了?
答案 0 :(得分:1)
您只需确保在JQuery引用之后插入插入的脚本。
改为使用RegisterStartupScript
- 在</form>
结束标记之前插入脚本标记。
答案 1 :(得分:0)
不确定这是否相关,但我总是使用:
<script type="text/javascript"...
对不起,这应该是评论而不是答案。
答案 2 :(得分:0)
我认为这与您使用的注册功能有关。尝试使用RegisterStartupScript
代替RegisterClientScriptBlock
。
Page.ClientScript.RegisterStartupScript(this.GetType(), "switchaction", "<script language='javascript'>switchactionpanel(" + (int)((Global.upAction)Enum.Parse(typeof(Global.upAction), Global.ProfileAction.ToString())) + ")</script>", false);