我是初学者,关于DataGrid,有几个问题呀:
   1、datagrid和datalist、repeater有什么区别呀,我的意思是,如果我想偷懒,是不是在什么地方都可以只用datagrid,而不用去管datalist、repeater了,可以这样吗?
   2、在一个类似论坛这样的首页,放一些最新注册的用户TOP10,本周点击10,本月点击10,以及各个分类的新文章TOP10之类的,是不是每一个都是用一个DataGrid来实现呀?
   3、还是在这个类似论坛这样的首页,比如说我的分类有5个(精美贴图、体坛风云之类的),我要在首页上显示这5个分类的各前5条,以前在ASP下,是划一张表,在上面有个循环,循环出5张表。现在如何处理呢?
   谢谢!

解决方案 »

  1.   

    一个一个来说
    先说第一个:datagrid最大的优势是很容易格式化表格 但是这也是它的缺点 和repeater以及datalist相比起来显得不够灵活. 而repeater和datalist并无很大区别.你慢慢接触多了就会明白什么时候该用什么了.
    第二个问题:没必要.你可以只用一个datagrid就可以实现的,只是必须提供相应的数据源.
    第三个问题:现在也是同样处理 只不过.net framework替你做了很多工作,这样你可以简单一些.你可以首先生成一个datatable 这个datable包含那些分类的栏目,将这个datatable绑定到datagrid上.然后在这个datagrid的itembound事件上做一次foreach.每次取一个栏目  然后根据这个栏目来读数据库中你要的结果集,然后把这个结果集绑定到上面说到的那个datagrid的一个模板内包含的一个datagrid上就可以了.
    不知道我说清楚了没有.
      

  2.   

    1,决定何时使用 DataGrid、DataList 或 Repeater(ASP.NET 技术文章)http://www.microsoft.com/china/MSDN/library/WebServices/ASP.NET/Deciding%20WhentoUsetheDataGridDataListorRepeater.mspx2,sql语句elect top 10 *即可
    3,可以写个通用的绑定函数,参数为DataGrid对象
      

  3.   

    datagrid是一个表格控件:主要存储几行几列的表数据!对其存取都比较方便
    datalist主要是存取几行一列的数据比较方便,并且效率也要高些,也可以存取
    几列但要自己用分隔符分开也可,这样取数据要判断分隔符麻烦一些!还是根据
    实际情况用那个控件好些!举个例子吧:实数包括整数,你的问题就是所有计算
    都用实数。很多情况是可以的,但有时考虑多种因数就不一定好了!
      

  4.   

    第一个问题,得好好看看net_lover(孟子E章)给的资料,谢谢net_lover(孟子E章)。
      第三个问题,以现在的技术水平,还不能够完全理解,得再看看书,做一下试试。
      
      第二个问题,大家可能没有理解我的意思,我的意思是说,比如在以前的ASP里,在一个页面上,可能有很多不同的表,放在页面的不同位置,表格的栏数,表格的行数,表格的标题、表格的颜色和字体的颜色、字体大小的等,可能是不同的(不是第三个问题所说的那样,不同的分类循环的问题)。我在ASP里处理的时候,在不同的地方放不同的表,我想问的是在asp.net中是不是就放不同的datagrid或者datalist之类的呀?
      

  5.   

    1。其实DataGrid在三个控件中功能相对来说是最大的,它使用模板列也可以实现DataList 或 Repeater所实现的功能,但是不能分列。
    2。不一定的,但是如果你要分类清楚一些,当然多写几个也是可以的,因为要让用户感觉详细】
    3。其实你可以建两张表,一个类别表,一个详细信息表(当然也可以是一个,因为总归会有标识的)
    然后根据的你的要求,每个栏目取5条信息就可以了。绑定方法和第二个问题一样吧
      

  6.   

    1、各有千秋,DataGrid的功能最为丰富,但是,DataList中却又有DataGrid很难实现的功能。
    所以,还是要根据实际情况来考虑究竟使用那种控件的;
    2、对于这些简单的现实,使用Repeater和DataList都能够实现;
    3、你只要取出数据的前5条绑定任何一个控件都可以;
      

  7.   

    第二个问题,可以用不同的DataGrid,也可以用一个,通过条件取出数据进行绑定