protected void Page_Load(object sender, EventArgs e)
    {
        frameId = HttpContext.Current.Request.QueryString["frameId"];
        frameType = Int32.Parse(HttpContext.Current.Request.QueryString["frameTypeId"]);
        GetCSS();
    }
    /// <summary>
    /// 获取CSS
    /// </summary>
    /// <returns></returns>
    public void GetCSS()
    {
        List<string[]> listStr = frameManage.GetCss(frameId, frameType);
        Frame fff = new Frame();
        fff = frameManage.ReadFrame(frameType, frameId);
        switch (listStr.Count)
        {
            case 4:
                string js = "<script>document.getelementbyid('bigImageProducts').src='" + fff.FrameImagePath + "'</script>";
                //Response.Write("<script>$('#bigImageProducts').attr('src','"+fff.FrameImagePath+"')</script>");
                Response.Write(js);
                break;
            case 3:
                break;
            case 2:
                break;
            case 1:
                break;
            default:
                break;
        }
    }
这段代码!~~~~~~~~~ 当运行的时候 希望bigimageproducts这个img的src为后台查询出来的 报出错误 "<script>document.getelementbyid('bigImageProducts').src='" + fff.FrameImagePath + "'</script>";
这里报出document.getelement为空~! 我在想是不是page_load方法是在前台页面html标签加载之前运行的 该如何来解决这个问题呢? 在什么地方调用getCSS才能实现效果呢?

解决方案 »

  1.   

    c#有个 Page.RegisterStartupScript("", "<script>document.getelementbyid('bigImageProducts').src='" + fff.FrameImagePath + "'</script>");
      

  2.   

    string js = "<script>document.getElementById('bigImageProducts').src='" + fff.FrameImagePath + "'</script>";
                    //Response.Write("<script>$('#bigImageProducts').attr('src','"+fff.FrameImagePath+"')</script>");
                    ClientScript.RegisterStartupScript(GetType(), "js", js);
    我这样写的时候 为什么生成之后 图片路径里面的 \\都没有了 以前用jquery的时候 传递json数据也出现过这样的问题 以为是因为jquery把\\屏蔽掉了 然后我就是在后台先把\\转换成$ 在前台又转回来 但是在这里 没有地方提供转换字符啊 该如何解决啊?
      

  3.   

    url 中最好用 /  而不用 \\  。不然firefox 会自动转译url string js = "<script> window.onload = function(){ document.getelementbyid('bigImageProducts').src='" + fff.FrameImagePath + "'};</script>";
                    Response.Write(js);最好还是用ClientScript.RegisterStartupScript(GetType(), "js", js);
    Response.Write 会在第一行输出,他会添加到响应流的开始位置。这样如果你的html 导入了w3c的dtd
    ,dtd就无效了,会导致css 不兼容