1

我有以下代码在 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 应该放在页面生命周期中的哪个位置才能正常工作?还是我对这一切都错了?

4

3 回答 3

1

您只需要确保在 JQuery 引用之后插入插入的脚本。

改用RegisterStartupScript-- 在结束标记之前插入脚本</form>标记。

于 2013-05-16T23:01:46.963 回答
0

不确定这是否相关,但我总是使用: <script type="text/javascript"...

抱歉,这应该是评论而不是答案。

于 2013-05-16T23:00:50.883 回答
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);
于 2013-05-16T23:02:41.513 回答