前台页面我想这样显示:
-------------------------------------------------------------------------
head.aspx部分(用<!--#include file="head.aspx"-->)----------------------------------------------------------------------------
从数据库读出的部分(用Response.Write(Convert.ToString(drMain["MainName"])+"<BR>");和Response.Write(Convert.ToString(drSub["SubName"]))
------------------------------------------------------------
foot.aspx部分(用<!--#include file="foot.aspx"-->)------------------------------------------------------------------
但实际显示却是这样的:
-----------------------------------------------------------------------
从数据库读出的部分(用Response.Write(Convert.ToString(drMain["MainName"])+"<BR>");和Response.Write(Convert.ToString(drSub["SubName"]))
---------------------------------------------------------------------------
head.aspx部分(用<!--#include file="head.aspx"-->)
------------------------------------------------------------
foot.aspx部分(用<!--#include file="foot.aspx"-->)
----------------------------------------------------------
附上代码,后台的:
---------------------------------------------------------------------------
//连接数据库
string strConn="server=Localhost;uid=sa;pwd=;database=eFrum";
// 创建Connection对象cnMain
SqlConnection cnMain=new SqlConnection(strConn);
// 打开cnMain
cnMain.Open();
// 构造SQL语句,该语句选择所有的主版
String strMain="select * from MainBoards";
// 创建Command对象cmMain
SqlCommand cmMain=new SqlCommand(strMain,cnMain);
// 执行ExecuteReader()方法得到drMain
SqlDataReader drMain=cmMain.ExecuteReader();
// 显示主版
while(drMain.Read()) 
{

Response.Write("<tr><td>"+Convert.ToString(drMain["MainName"])+"<BR>");
// 创建Connection对象cnSub
SqlConnection cnSub=new SqlConnection(strConn);
// 打开cnSub
cnSub.Open();
// 构造SQL语句,该语句选择主版的所有子版
String strSub="select * from SubBoards where "+
"MainID='"+drMain["MainID"]+"'";
// 创建Command对象cmSub
SqlCommand cmSub=new SqlCommand(strSub,cnSub);
// 执行ExecuteReader()方法得到drSub
SqlDataReader drSub=cmSub.ExecuteReader();
// 显示子版
while(drSub.Read()) 
{
Response.Write(Convert.ToString(drSub["SubName"])+"<br>");
--------------------------------------------------------
前台的:
<BODY>
<!--#include file="head.aspx"-->

<br>

<%=aa%>

<!--#include file="foot.aspx"-->
</BODY>
为什么Response.Write部分总是先于include部分先输出呢?我想让include先输出又应该怎么办呢?
Response.Write部分先出来的话,就没办法实现定位啊!

解决方案 »

  1.   

    head.aspx部分(用<!--#include file="head.aspx"-->)
    ------------------------------------------------------------
    foot.aspx部分(用<!--#include file="foot.aspx"-->)杂,BET里面已经不提倡使用这种方式了。请使用用户控件来替代它
      

  2.   

    同意楼上的观点,NET下面不推荐使用上面这种嵌入方式,可以使用用户控件,
    还有Response.Write 默认是向头部输出,即没有包括再<BODY></BODY>之间,你运行后看看HTML代码就知道了,上面的可以使用服务器控件,也可以改成这样,先再后台中定义两个PUBLIC变量,然后再前台直接用<%=%>就OK了
     
    public string mainName = "";
    public string subName = "";Response.Write("<tr><td>"+Convert.ToString(drMain["MainName"])+"<BR>");
    改成 mainName = "<tr><td>"+Convert.ToString(drMain["MainName"])+"<BR>";
    Response.Write(Convert.ToString(drSub["SubName"])+"<br>");
    改成: subName= Convert.ToString(drSub["SubName"])+"<br>";前台要显示的位置加上 <%=mainName %>
      

  3.   

    mainName = "<tr><td>"+Convert.ToString(drMain["MainName"])+"<BR>";
    前台要显示的位置加上 <%=mainName %>
    这样输出的是<tr><td>"+Convert.ToString(drMain["MainName"])+"<BR>"啊,而不是我想要的,从数据库输出
    如果这样:mainName=Convert.ToString(drMain["MainName"]);
    <%=mainName %>
    subName= Convert.ToString(drSub["SubName"]);
    <%=subName%>]
    又达不到嵌套输出的目的,
    而是先把mainName对应的字段输出来,之后才出subName对应字段,
    我想要的是,mainName输出之后,再出按ID对应的subName字段
    用Response.Write就可以了,但又实现 不了定位,哎,郁闷啊!!