Html ASP:DataGrid控件是一个很好的选择吗?

Html ASP:DataGrid控件是一个很好的选择吗?,html,asp.net,webforms,Html,Asp.net,Webforms,我的任务是将一个经典的ASP项目转换为ASP.Net项目。原始项目中的一个页面使用框架集构建由标题和正文组成的表: <frameset rows="175, 300, *" marginwidth="0" marginheight="0" border="0" id="frmCommentReport"> <frame src="commentStatusReportHeader.asp?CourseId=<%=Request("CourseId")%&g

我的任务是将一个经典的ASP项目转换为ASP.Net项目。原始项目中的一个页面使用框架集构建由标题和正文组成的表:

<frameset rows="175, 300, *" marginwidth="0" marginheight="0" border="0" id="frmCommentReport">
        <frame src="commentStatusReportHeader.asp?CourseId=<%=Request("CourseId")%>&Id=<%=Request("Id")%>" scrolling="yes" name="header" marginwidth=0 marginheight=0 border=0 />
        <frame src="commentStatusReportBody.asp?CourseId= %=Request("CourseId")%>&Id=<%=Request("Id")%>" scrolling="yes" name="body" marginwidth=0 marginheight=0 />

表格的标题和正文都是由嵌入在每个页面中的vbscript生成的。标题信息来自一个数据源。身体信息来自另一个

我想做的不是使用两个框架(或者甚至一个框架),而是以ASP:DataGrid控件的形式将.aspx页面上的信息组合起来

作为一个ASP.Net新手,我想知道是否应该使用DataGrid控件?或者,有没有其他更可取的方法,有人可以建议

我感谢你的建议和指点

结果如下所示:

您最好使用简单的asp:Repeater。这样,您就可以完全控制用于塑造用户界面的CSS和HTML。可以使用asp:DataGrid来执行此操作,但asp:DataGrid过于严格

您要做的是使用嵌套的中继器:

<table>
    <asp:Repeater id="rpt1" runat="server>
      <tr><td>
         <table>
            <asp:Repeater ID="rpt2" runat="server">
               <tr><td></td></tr>
             </asp:Repeater>
          </table>
       </td></tr>
     </asp:Repeater>
</table>

很明显,这是一个简单的例子,你必须扩展它来精细化所需的U.I.但希望你能看到这种方法有多灵活。此外,您不必像使用asp:DataGrid一样将大量数据透视集绑定到中继器,仅供参考,这是asp.NET,不是asp Classic。对不起,John。我加入了ASP Classic标记,因为实际的页眉和正文是从.ASP页面上的vbscript构建的。听起来这对我必须做的事情很有用。我以前使用过转发器(用于显示不同的图像,比如谷歌上的搜索页面结果),所以我至少对它们足够熟悉,可以在这方面继续前进。我之所以想到使用DataGrid,是因为我正在阅读一个网站关于显示表格数据的建议。我很感激你的回答!没问题!你喜欢使用asp:Repeater和干净的HTML和CSS。只是感觉我在控制着asp:DataGrid,它可能非常强大,但有时对于自定义U.I.来说过于繁琐和僵化
     Protected Sub rpt1_ItemDataBound(sender As Object, e As System.Web.UI.WebControls.RepeaterItemEventArgs) Handles rpt1.ItemDataBound
        If (item.ItemType = ListItemType.Item Or item.ItemType = ListItemType.AlternatingItem) Then
            Dim rpt2 As Repeater = item.FindControl("rpt2")
            //Bind More Data
        End If
      End Sub