在.aspx页面中有个iframe,其标签语句如下:<IFRAME id="mainarea" marginHeight="0" src="<asp:literal id='myliteral' runat='server'></asp:literal>"
frameBorder="0" width="100%" scrolling="no"></IFRAME>在后台.cs文件中可以直接写 myliteral.text = "xxx"; 这样的语句。我不理解的是,给src属性赋值的只是一个字符串,为什么里面的内容可以代表一个控件对象呢?这表示该控件会在页面执行的时候生成,请高手指教了,谢谢!

解决方案 »

  1.   

    呵呵,你要理解一下
    ASP.Net有一个页面解析的过程,对于页面上的字符串,它是解析为 literal 的控件这样理解之后,literal就是字符串其实你也可以这样写src=" <%= sSrc>"
    *.csprotected string sSrc = "";给它一个值就行
      

  2.   

    ASP.NET的ASPX页面算是一个模块引擎,特有的一些TAG表示着控件,非控件或者其它ASP.NET不能识别的TAG均识别为一般HTML,直接输出,所以,你的控件TAG放哪里都行,ASP.NET不会去理会他的邻居是什么,我只知道我,是一个控件,服务端代码可以识别我就行了。
      

  3.   

    谢谢楼上大哥指教!是不是这样的意思:
    在客户端发出页面请求的时候,页面的内容在http请求中以字符串的形式存在。
    服务器端解包的时候对字符串进行解析,发现有<asp:></asp>这种形式的字符串就解析成asp.net控件,然后再去执行它生成html标签。
      

  4.   

    问一下这样: <iframe src="<%# Eval("reply_content")%>" frameborder="0" width="100%" height="100%" scrolling="no"> </iframe>
    可以?
      

  5.   

    只要你<%# Eval("reply_content")%>这个绑定的值是对的就没问题
      

  6.   

    我现在<%# Eval("reply_content")%>绑定的值是这样的~/bbsReply/20090803001/2009082000001.htm
    但是在页面显示不出来
      

  7.   

    如果你使用<%# %>
    的形式,一定要调用object.DataBind()方法#是与绑定行为相关的