我现在用的是asp.net 2.0,在用户控件中插入一幅图片后,设置作为服务器控件运行,不管把用户控件拖到哪个目录中,图片都可正常显示;但是,我在表格的td中设置背景图片后,把td设置作为服务器控件运行,控件拖到不同的目录结构后,背景图就显示不出来了,为什么啊?该怎么解决?大家帮忙啊

解决方案 »

  1.   

    用户控件上的<img src="../abc.jpg">其中的../abc.jpg是相对于显示页面的路径用户控件上的Image控件图片路径则是根据用户控件所在的相对路径
      

  2.   

    比如用户控件中有:<td background="../image/abc.jpg"> image文件夹在项目主目录下则应改为<td background="/image/abc.jpg">
      

  3.   

    sprc_lcl(cool一生) 
    比如用户控件中有:<td background="../image/abc.jpg"> image文件夹在项目主目录下则应改为<td background="/image/abc.jpg">
    ---------------------------------------------------
    这种方式肯定不行,当网站改成虚拟目录以后,图片仍会找不到。如果是这种方式的话,我就没必要设置在服务器端运行了
      

  4.   

    hmilyzhi(我写程序我怕谁) 
    -----------------------------------------
    图片路径不要相对于用户控件,而要相对于用户控件所在的页面我想要的是不能去根据用户控件位置来做,也不根据控件所在页面来做,那样不同目录层次的页面就无法去调用同一个用户控件了。
    我希望得到的是一个通用的,无论目录结构是怎样的,都可用同一个控件
      

  5.   

    sprc_lcl(cool一生) 
    -----------------
    呵呵,不可能肯定会这样啊,当它是虚拟目录时,它会去找根目录下的image
      

  6.   

    那"~/image/*.jpg"行不?
    ----------------------------
    vs 2005里面它不解释~符号,也不行
      

  7.   

    sprc_lcl(cool一生) 说的话就像阿迪的广告一样,看不懂
      

  8.   

    反正 非服务器控件的html语言的路径都是相对于显示页面的....
    所以你要求的那种不可能……另想途径啊
    比如加个变量啊,调用用户控件时赋值路径~~
    或者干脆多写几个控件
      

  9.   

    用程序去获取网站的根目录是能达到此目录,我主要是想能找到一种快速,高效率的方法,而且无需在cs中写代码。
    很感谢sprc_lcl(cool一生)
    ------------------------------
    怎么另外就没人进来回答呢
      

  10.   

    老兄 看看 这个笨方法适合不适合你。Response.Write("http://"+HttpContext.Current.Request.Url.Authority+HttpContext.Current.Request.ApplicationPath+"图片名称")//得到当前页面的路径如果图片不在当前页,你再截取一下路径加上你的图片名称。
                //HttpContext.Current.Response.Write("Request.PathInfo=" + HttpContext.Current.Request.PathInfo + "<br>");
                //HttpContext.Current.Response.Write("Request.PhysicalApplicationPath=" + HttpContext.Current.Request.PhysicalApplicationPath + "<br>");
                //HttpContext.Current.Response.Write("Request.PhysicalPath=" + HttpContext.Current.Request.PhysicalPath + "<br>");
                //HttpContext.Current.Response.Write("Request.RawUrl=" + HttpContext.Current.Request.RawUrl + "<br>");
                //HttpContext.Current.Response.Write("Request.Url=" + HttpContext.Current.Request.Url.ToString() + "<br>");
                //HttpContext.Current.Response.Write("Request.Url.AbsoluteUri=" + HttpContext.Current.Request.Url.AbsoluteUri.ToString() + "<br>");
                //HttpContext.Current.Response.Write("Request.Url.Authority=" + HttpContext.Current.Request.Url.Authority.ToString() + "<br>");
                //HttpContext.Current.Response.Write("Request.Url.AbsolutePath=" + HttpContext.Current.Request.Url.AbsolutePath.ToString() + "<br>");
                //HttpContext.Current.Response.Write("Request.Url.Host=" + HttpContext.Current.Request.Url.Host.ToString() + "<br>");
                //HttpContext.Current.Response.Write("Request.Url.ApplicationPath=" + HttpContext.Current.Request.ApplicationPath + "<br>");几种得到相关Path的方法,看哪种适合你,再做相应的替换。
      

  11.   

    bidisty(浪漫草) ( ) 信誉:100  2006-06-22 15:12:00  得分: 0  
     
     
       用绝对路经不行吗?
      
     
    ------------------------------不行,变成虚拟目录就不行了