本人现在再做一个动态网站分类的blog随笔页面
最后显示效果如下缘分天空(网站分类)   我的大学(属于网站分类)
  缘分天空1            我的大学1(blog随笔)
  缘分天空2            我的大学2 
  缘分天空3            我的大学3级数青春             美女图帖
 级数青春1             美女图帖1
 级数青春2             美女图帖2
 级数青春3             美女图帖3
  
现在做成了一个用户控件(UserControl.ascx)
有一个"网站分类ID号"(CategoryID)参数的属性,只要给他"网站分类ID号"的值就能单个的显示如下效果
缘分天空(网站分类)   
  缘分天空1           
  缘分天空2             
  缘分天空3            而我的"网站分类ID号"是有多的
我用循环把值赋给用户控件的"网站分类ID号"参数
可是他并没有把所有的网站分类显示出来
而是只显示最后一个网站分类的随笔
我该如何,请大伙告诉我可操作性的步骤或代码

解决方案 »

  1.   

    IndexTest.aspx.cs
    private void Page_Load(object sender, System.EventArgs e)
    {
    string Sql = "select CategoryID from blog_LinkCategories  where blog_LinkCategories.ParentID=-1 and blog_LinkCategories.CategoryType = 6 And blog_LinkCategories.Active = 1 Order BY blog_LinkCategories.UpdateTime desc";
    SqlConnection myConnection = new SqlConnection(Conn);
    myConnection.Open();
    SqlDataAdapter myDataAdapter = new SqlDataAdapter(Sql,myConnection);
    DataSet myDataSet = new DataSet();
    myDataAdapter.Fill(myDataSet,"blog_LinkCategories");
    myConnection.Close();
    //给网站分类控件属性赋予网站ID值
    Repeater1.DataSource = myDataSet.Tables["blog_LinkCategories"];
    Repeater1.DataBind();
    for(int i=0;i<myDataSet.Tables["blog_LinkCategories"].Rows.Count;i++)
    {
    IndexCategory1.CategoryID =(int) myDataSet.Tables["blog_LinkCategories"].Rows[i][0];
    }
    }
    IndexTest.aspx就一个
    <uc1:IndexCategory id="IndexCategory1" runat="server"></uc1:IndexCategory>
      

  2.   

    前台后来加了个Repeater1控件
    <asp:Repeater id="Repeater1" runat="server">
    <ItemTemplate>
    <uc1:IndexCategory id="IndexCategory1" runat="server"></uc1:IndexCategory>
    </ItemTemplate>
    </asp:Repeater>
      

  3.   

    我现在把IndexTest.aspx.cs改写为 
    protected System.Web.UI.WebControls.PlaceHolder PlaceHolder1;
    //省略的一段是把CategoryID从数据库中调出
    for(int i=0;i<myDataSet.Tables["blog_LinkCategories"].Rows.Count;i++)
    {
    string controlName = "IndexCategory.ascx";
    UserControl control =  (UserControl)LoadControl("~/IndexControls/"+ controlName);
    PlaceHolder1.Controls.Add(control);
    control.CategoryID =(int) myDataSet.Tables["blog_LinkCategories"].Rows[i][0];
    }
      

  4.   

    在用户控里定义一个DATAGRID,DATAList都可以,
    定义一个共公的方法OPEN(CategoryID),OPEN方法再调用一个数据读取的方法,数据读取后绑定到GRID或LIST中.
    主页面放个DATALIST,在模板里放上这个用户控件,在ItemDataBound事件再获了类别ID关调用相关用户控件的OPEN方法.
      

  5.   

    回复人: henryfan1(每天好心情(*_*)) 哥,给点源码好不好
    因为我看了也无法操作。
    我学C#四个月
      

  6.   

    我用了一个protected System.Web.UI.WebControls.PlaceHolder PlaceHolder1;
    for(int i=0;i<myDataSet.Tables["blog_LinkCategories"].Rows.Count;i++)
    {
    string controlName = "IndexCategory.ascx";
    IndexCategory myControl = (IndexCategory)this.LoadControl("~/IndexControls/"+ controlName);
    myControl.ID = "ID_"+ i + controlName;
    PlaceHolder1.Controls.Add(myControl);
    myControl.CategoryID = (int) myDataSet.Tables["blog_LinkCategories"].Rows[i][0];
    }东西取出来了,可是显示的效果却是
    缘分天空(网站分类)   
      缘分天空1           
      缘分天空2           
      缘分天空3           
    级数青春             
     级数青春1             
     级数青春2             
     级数青春3             
    而不是
    缘分天空(网站分类)   我的大学(属于网站分类)
      缘分天空1            我的大学1(blog随笔)
      缘分天空2            我的大学2 
      缘分天空3            我的大学3级数青春             美女图帖
     级数青春1             美女图帖1
     级数青春2             美女图帖2
     级数青春3             美女图帖3
    有办法吗?
      

  7.   

    用Datalist只能实现单方向。
    要有2个方向可以再嵌套1层,不过不推荐这么做。还不如用小个Datagrid里面模版放个Datalist。如果要实现这种建议用成repeat如果有8个大类,你是要332还是44还是2222呢?
      

  8.   

    syeerzy(快乐永远) 
    我现在在用户控件里面是用reapter
    在调用他的aspx文件里面应该是如何呢 
      

  9.   

    你们放心顶
    我已经实现了
    做法就是
    1。用了两个Plane
    2。在后台用了取模,让他们进入相应的Plane里面
    不过我想看看其他,而不是实现就拉到,我还有三个帖子没结帐,你们放心顶
    http://community.csdn.net/Expert/topic/3876/3876809.xml?temp=.5472071http://community.csdn.net/Expert/topic/3872/3872263.xml?temp=.7775537
    http://community.csdn.net/Expert/topic/3872/3872023.xml?temp=.6363794