大家好,这个问题困扰我一个多星期了。希望高手指点一下。我有两个表其中一个字段是关连的,分别是
A表 pro_id pro_name
B表 pro_sub_id pro_id pro_sub_name我想像EACHNET首页一样做个产品目录见下图,分别有两列,每一列产品大类的第二行为该大类的详细子目录,具体请见EACHNET首页。可是我用了好几种方法都无法达到这种效果,其中要涉及子类换行的问题。我现在只能把大类像EACHNET首页显示出来可是就是如何分别在他们的类下面再显示他们的子类并第三个换行,还要有LINK.我的设计思路是如果第一行大类显示后就插入新的一行显示子类,子类的内容于上面一行大类在PRO_ID应该相同,再把显示出来。以下是我大致的思路,大家帮忙看看应该哪里改一下。这个A     B
XXX  XXX     XXX  XXX  
XXX  XXX     XXX XXXX
C     D
XXX  XXX     XXXX XXXXX \
XXX  XXXX    XXXX  XXX  XXXprivate void Page_Load(object sender, System.EventArgs e)
{
SqlConnection con=DBcon.CreateConnection();
con.Open();
SqlConnection con1=DBcon.CreateConnection();
con1.Open();
SqlDataAdapter da=new SqlDataAdapter();
SqlDataAdapter da1=new SqlDataAdapter();
DataSet ds=new DataSet();
da.SelectCommand=new SqlCommand("select pro_b_name,pro_id from b_cata order by pro_id",con1);
da1.SelectCommand=new SqlCommand("select pro_name,pro_id from a_cata",con);da.Fill(ds,"b_cata");
da1.Fill(ds,"a_cata");// System.Data.DataRelation dr;
// System.Data.DataColumn name_a;
// System.Data.DataColumn name_b;// dr = new System.Data.DataRelation("rl",name_a,name_b);
// ds.Relations.Add(dr);
int count=ds.Tables["a_cata"].Rows.Count;for(int i=1;i<=count;i++){
string name_a=(string)ds.Tables["a_cata"].Rows[i-1]["pro_name"].ToString();
int name1_id=(int)ds.Tables["a_cata"].Rows[i-1]["pro_id"];
                

TableCell tc1=new TableCell();
TableCell tc2=new TableCell();

TableRow tr1=new TableRow();

// int t=0;
// if((t%2)==0)
// { this.Table1.Controls.Add(tr1);
tr1.Controls.Add(tc1);
tc1.Text=name_a;
i=i+1;
name_a=(string)ds.Tables["a_cata"].Rows[i-1]["pro_name"].ToString();
int name2_id=(int)ds.Tables["a_cata"].Rows[i-1]["pro_id"];

tr1.Controls.Add(tc2);
tc2.Text=name_a;


int count_b=ds.Tables["b_cata"].Rows.Count;
this.Table1.Controls.Add(tr2);
for (int n=0;n<count_b;n++)

{

if ((ds.Tables["a_cata"].Rows[name1_id-1]["pro_id"].ToString())==(ds.Tables["b_cata"].Rows[n]["pro_id"].ToString()))
{
string name_b=(string)ds.Tables["b_cata"].Rows[n]["pro_b_name"].ToString();

TableCell tc3=new TableCell();

tr2.Controls.Add(tc3);
// name_b+=name_b;
tc3.Text=name_b; }
}
for (int n=0;n<count_b;n++)
{

if ((ds.Tables["a_cata"].Rows[name2_id-1]["pro_id"].ToString())==(ds.Tables["b_cata"].Rows[n]["pro_id"].ToString()))
{
string name_b=(string)ds.Tables["b_cata"].Rows[n]["pro_b_name"].ToString();

TableCell tc4=new TableCell();
tr2.Controls.Add(tc4);
//name_b+=name_b;
tc4.Text=name_b;
}
}
}