肯定不是datagrid,看HTML也不是ASP.NET做的啊!
页面布局的学问。

解决方案 »

  1.   

    分块是对的,但不一定要用datagrid来实现呀,有好多是java写的,
    我个人的观点是datagrid并不是一个完善的控件(目前来讲)
      

  2.   

    楼上两位,我是说如果用asp.net,用datagrid来实现能不能行?一般asp.net的首页这种功能是用什么来实现的呢?
      

  3.   

    晕,各位大大,页面布局不是问题,重点不是这个大家都知道新闻发布系统发布的都是动态内容,都是取自数据库再呈现,而datagrid既能很好地同数据库结合动态展示,又能容易地控制样式外观我想问的是能不能就用datagrid来实现一个像CSDN首页这样的网站首页呢?
      

  4.   

    可以啊,我的首页新闻就是用datagrid搞上去的
    但是我的页面访问速度有的人快,有的慢:(,我也不懂怎么回事
      

  5.   

    如果是一个访问量超大的IT网站,谁还会敢用这样的动态方法来显示首页?
    一般的做法是在后台生成静态的首页文件(不过在.NET里扩展名为ASPX),即:index.aspx
    虽然是ASPX后缀,但是里面其实是静态的HTML代码
      

  6.   

    to superplayboy(快乐的粉肠) :请问在后台生成静态首页的方法如何实现,这和使用ASP不是一样的吗?
      

  7.   

    yes,通过StreamWriter写文本文件。不过和ASP中操作FSO相比起来就稍微比原来多一点点复杂,就是要注意所写文件的编码问题
    给你一段例子吧FileStream fs=new FileStream(Server.MapPath(文件名),FileMode.Create);
    StreamWriter f=new StreamWriter(fs, System.Text.Encoding.UTF8);//如果是gb2312,则第2个参数应改为:System.Text.Encoding.GetEncoding("gb2312")
    f.Write(mdata);//mdata为文本数据
    f.Close();
    fs.Close();其实大家学.NET的时候不要被它华丽的外表和宣传吓住,以前ASP中的很多好的方法还是可以移植过来的
      

  8.   

    晕,这种方法与.net简直是南辕北辙吧
      

  9.   

    可以用Datagrid实现,个人认为用ASP.NET实现有一个速度问题
      

  10.   

    CSDN是ASP做的,首页是用HTML的TABLE+代码实现的~~
      

  11.   

    请看我的首页www.erist.com就是用Datalist实现的。是在一个Datalist再嵌套一个,实现二级导航的。
      

  12.   

    我现在还在上面呢?!!!就是用一个datalist,里面再放一个Datalist数据结构可以用CategoryID ParentID的树型结构组成。
      

  13.   

    为了加快速度,可以将Datalist中的ViewState去掉。
      

  14.   

    erist,我看到你的网站了,真酷啊,全是用ASPX做的吗?
    首页用了datagrid吗?还是就用datalist?感觉这两个东东差很多啊
      

  15.   

    是的,全是aspx作的。后台还有一个论坛大量用datalist
    少量用了Datagrid它们的主要区别是:Datagird是以表格为定位,就是输出时最外面为一个表格,包含行和列
    Datalist是一行一列的一个表格。Datalist比Datagrid有更多的灵活性但datagrid支持分页不过,现在有通过的分页组件,可以观察一下,我网站里有一些分页控件
    如http://www.erist.com/Articles/ChannelIndex.aspx?ChannelID=2的最新文章列表的分页。
      

  16.   

    可以看一下这个贴子。http://www.erist.com/Forums/ThreadView.aspx?ThreadID=165&ForumID=4
      

  17.   

    一般说来,首页应该是静态网页,特别是访问量较大点的网站
    首页可以是用include包含各块的静态页面,当有相应的改变时,再生成一次相应的inc文件,这样可以保证较快速度,而不用频繁读取数据库和动态解析页面。
      

  18.   

    现在有asp.net,更应有一些新的想法
      

  19.   

    sumanden(心头慌,打中张)所说的改变,是不是可以理解成每发布新的内容时就重新生成一次相应的inc文件?
      

  20.   

    回复人: erist() ( ) 信誉:100  2004-03-29 20:08:00  得分:0 
     
     
      现在有asp.net,更应有一些新的想法
      
     
    ----------
    比如说?
      

  21.   

    不过总觉得include怎么有点老啊
      

  22.   

    erist,你的网站是白底黑字,而且感觉字好像小了点,读文章眼睛很累啊,尤其是长一点的文章,一篇看下来眼都花了,能改改就好了
      

  23.   

    >>不过总觉得include怎么有点老啊微软的Duwamish也还用了include呢:)
      

  24.   

    namespace Erist.Web.UI.UserControls
    {
    using System;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using Erist.DataAccess.Article; /// <summary>
    /// ChannelNewArticlesList 的摘要说明。
    /// </summary>
    public class ChannelNewArticlesList :Erist.Web.UI.UserControls.ControlBase
    {
    protected System.Web.UI.WebControls.DataList DataList1;
    private int ChannelIndex; private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    ChannelDAL obj=new ChannelDAL();
    DataSet ds2;
    ds2=obj.GetChildChannelsForArticle(base.CurrentChannelID);
    // 在此处放置用户代码以初始化页
    this.DataList1.DataSource=ds2;
    this.DataList1.DataKeyField="ChannelPath";
    this.DataList1.DataBind();
    } #region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器
    /// 修改此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {
    this.DataList1.ItemCreated += new System.Web.UI.WebControls.DataListItemEventHandler(this.DataList1_ItemCreated);
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion private void DataList1_ItemCreated(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
    {
    if(e.Item.ItemType==ListItemType.Item || e.Item.ItemType==ListItemType.AlternatingItem)
    {
    this.ChannelIndex=e.Item.ItemIndex;
    }
    } public DataSet FillDs()
    {
    DataSet ds;
    ArticleDAL obj=new ArticleDAL();
    ds= obj.GetArticlesByChannelNewN((string)this.DataList1.DataKeys[ChannelIndex]);
    return ds;
    } /// <summary>
    /// 格式化文章的标题,使之不致于显示过长的信息
    /// </summary>
    /// <param name="Title"></param>
    /// <returns></returns>
    public string FormatTitle(string Title)
    {
    if(Title.Length>16)
    {
    return Title.Substring(0,16)+"...";
    }
    else
    {
    return Title;
    }
    } /// <summary>
    /// 格式化日期显示的颜色,当天为红色
    /// </summary>
    /// <param name="ModifyDate"></param>
    /// <returns></returns>
    public System.Drawing.Color GetTitleForColor(string ModifyDate)
    {
    if(DateTime.Parse(ModifyDate).Date.Equals(DateTime.Now.Date))
    {
    return Color.Red;
    }
    else if((DateTime.Parse(ModifyDate).AddDays(1).Date.Equals(DateTime.Now.Date)))
    {
    return Color.Orange;
    }
    else
    {
    return Color.Black;
    }
    } }
    }