情况是这样:新闻首页上有八个栏目(国内\国际\体育...),每个栏目按日期DESC显示前十条.
问题:我是不是需要用八个DataList来绑定数据显示出来?
如: Page_Load()
{
   if(!this.ispostback)
    {
      BindToDataList1();
      BindToDataList2();
      BindToDataList3();
      BindToDataList4();
      BindToDataList5();
      BindToDataList6();
      BindToDataList7();
      BindToDataList8();
    }
}请教:首页实际开发中是这样做的吗?不是的话应该怎样做?谢谢!

解决方案 »

  1.   

    呵呵~你可以用DataList做成一个用户控件嘛~需要几个栏目就往里面拖几个用户控件进去就好了
    一般实际开发中都是这样做,用户控件的重用性很高,还节省时间.
      

  2.   

     谢谢各位.
    还有个问题:首页上有一个"友情链接",也是用DataList绑定的,但发现绑定到表的Url字段时有问题:就是地址的前面带站内路径.比如说我要链接到新浪,但地址却为"http://localhost:10004/News/www.sina.com" .我要链接的是"www.sina.com".请问绑定地址时怎么正确显示路径?
      

  3.   

    把http://加在www.sina.com前边,不然就是相对路径了
      

  4.   

    主页 的内容可以用StringBuilder  Response.Write()输出 而不用空件显示 这样的速度要快的多
    例如:
    default.aspx.cs页
    public string  GetTopNews(int top, int newskindid)
        {
            StringBuilder ShowNews = new StringBuilder();
            DataTable dt = News.GetTopNews(top, newskindid);
            if (dt.Rows.Count == 0)
            {
                ShowNews.Append("暂时没有数据!!");
            }
            else
            {
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    int newsid = Convert.ToInt32(dt.Rows[i]["newsid"]);
                    string newstitle = dt.Rows[i]["newstitle"].ToString();
                    string newsposttime = Convert.ToDateTime(dt.Rows[i]["newsposttime"]).Month + "-" + Convert.ToDateTime(dt.Rows[i]["newsposttime"]).Day;
                    ShowNews.Append(string.Format("<li></li><a href='viewnews.aspx?newsid={0}' ><font size=2>{1}</font></a><font color='#8C92D4' size=2>({2})</font><br/>", newsid, newstitle, newsposttime));            }
    }
    aspx页调用:
    <p>国际新闻<%Response.Write(GetTopNews(10, 1)); %></p>
    以上仅供参考