如代码所示 <asp:Repeater ID="rptRow" runat="server">
<ItemTemplate>
<tr>
<td>
<!--# include file="......" -->
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
我希望在repeater 控件内部动态引用一个 include 文件,该怎么做

解决方案 »

  1.   

    你把你的html页写到一个用户自定义的控件当中
    然后再通过引用该用户控件应该可以解决问题
      

  2.   

    把 include 文件直接拷到那里,也可以呀,至于你说的那个,我没用过
      

  3.   

    自己up一下吧简单一点说,就是我的一个页面是由多个静态的 html 和 文本文件动态地拼在一起组成的。我需要在一个aspx页面中动态地加载这些页面。
      

  4.   

    把html叶面都做成ascx后缀的用户空间,然后用planhold.contral.add(new literal("用户空间名.ascx"))动态加在
      

  5.   

    太老了吧,还用INCLUDE,从ASP.PHP刚转过来的人干的.用户控件
      

  6.   

    7楼的:Literal 根本没有你所说的这种构造方法啊
    其他人提到用户控件。但是在控件中也要从其它文件装载文本内容啊,怎么在控件中装载资源文件中的内容,并且又不影响使用这个控件的宿主页面,这才是关键啊。
      

  7.   

    自己up一下吧 简单一点说,就是我的一个页面是由多个静态的 html 和 文本文件动态地拼在一起组成的。我需要在一个aspx页面中动态地加载这些页面。你需使用的,我建议你搜索一下asp.net中的模版技术.通常的做法都是在解决方案的项目中建一template的模块, 将html模版加载到cache里, 哪里需要输出什么,就调用cache里相应的template输出.php里常用这个, asp.net里也有不少人用.我主要是使用xslt, 将所要呈现的东西做成 xsl, 每个aspx页面只负责当前页面所需数据的xml文档的生成,其它全交给xsl来处理.
    比如
    http://bbs.devms.com/Register.aspx
    http://bbs.devms.com/template/html/default/register.xslt又比如
    http://www.vcsale.com/cheap.Ever_Quest_2.Antonia_Bayle_-_Good.916.aspx
    http://www.vcsale.com/xslt/saleblock.xsl
      

  8.   

    <!--#include virtual="head.inc"-->
      

  9.   

    13楼的,我被加载的页面是动态的,不能硬编码。也就是说不一定是 head.inc,可能是 a.htm, b.txt, c.html,具体加载什么要在运行时才能确定14楼说的 iframe 我也考虑过,但如果要加载的html页太多,客户端和服务端的交互次数会不会太多了点
      

  10.   

    如果只是为了加载一个或多个页来进行显示, 而不是将所加载页的一些变量或控件或其它一些信息整合在父页内进行调用,那么用iframe, scriptlet,div等等都能实现.
    1,iframe就不说了.
    2,scriptlet,随xml技术一起出现的东西
    可以用多种方式调用
    a <scriptlet id='id1' src='被调用的js,vbs,html之类的文件路径或url' 及样式定义>
    b <object id='id1' type='text/x-scriptlet' 及样式定义><param name='url' src='被调用的js,vbs,html之类的文件路径或url'></param></object>
    scriptlet与iframe比较,除了将src指定的文件的内容呈现之外,还可以在父页里调用其变量,和定义的一些客户端脚本方法,或是xml数据源
    3,div
    动态读出所要加载的html或js或vbs文件的内容, 然后以innerHTML或 insertAdjacentHTML 等方法,将内容加载到div里.
    是用innerHTML还是insertAdjacentHTML,这取决你的要求,若对加载的内容定义的元素成为当前页的元素,可以给其提供事件,方法等,那么使用insertAdjacentHTML, 如果只是按格式显示内容,那么用innerHTML, 如果只是当文本显示,那么用 innerText其它方式,略去
      

  11.   

    我在项目中也碰到这样问题,最终没有解决。以前include file可以的,可能安装vs2005 sp1后就不行了,反正现在总是不行,用户控件包装后js脚本我不会引用了,后来放弃这种写法
      

  12.   

    16楼的仁兄:scriptlet 是什么技术?在服务端还是在客户端执行?有没有相关的资源?另外,用div好象也不能解决动态引用资源这个问题啊
      

  13.   

    scriptlet指的是在页面内嵌一段代码执行. 执行的其实就是那段代码本身.至于在客户端还是在服务器端,那是由那段代码自身决定的. 只不过,它的客户端的东西,可以被父页调用.
      

  14.   

    最后的总结!
    http://www.ebookit.cn/index.html
      

  15.   

    采用母板吧,类似于html中的框架
      

  16.   

    这不就是<iframe >框架吗.看一下资料,很好实现
      

  17.   

      protected void rptRow_ItemCreated(object sender, RepeaterItemEventArgs e)
        {
            MyHtmlControl control = new MyHtmlControl(); //自定义的控件.
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                e.Item.Controls.Add(control);
            }
        }
      

  18.   

    21楼:
    按照你提供的例子,客户端好象不认识 <scriptlet>标记啊24楼:
    用iframe可以做到,这是在客户端实现,但我这涉及到iframe 在客户端自动调整大小的问题,我看过的javascript调整大小的例子好象都不太准确,经常被无故的变高25楼:
    你提供的代码还是没有什么地方体现如何装载html、txt 文件的内容啊
      

  19.   

    MyHtmlControl 中是html、txt 文件的内容,还可以制定不同的属性,控制显示不同的内容
      

  20.   

    我用 <iframe   >
      

  21.   

    客户端的 iframe 太多了不好吧
      

  22.   

    <iframe> 好象比较简单
      

  23.   

    除了用 iframe,还有没有别的办法?