Page_Load上的jQuery调用错误

时间:2013-05-16 22:51:47

标签: javascript jquery asp.net registerclientscriptblock

我有以下代码在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应该放在页面生命周期中哪里可以在页面加载时正常工作?或者我是不是错了?

3 个答案:

答案 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);