2013-08-21 42 views
0

我的任務是將經典ASP項目轉換爲ASP.Net項目。一個在原始項目的網頁使用了框架構建由一個頭和身體的表:ASP:DataGrid控件會是一個很好的選擇嗎?

<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 BUIT 。標題信息來自一個數據源。身體信息來自另一個。

我想要做的,而不是使用兩個框架(或甚至一幀),只是將一個.aspx頁面上的信息以ASP:DataGrid控件的形式組合在一起。

作爲一個新手ASP.Net人,我想知道是否使用DataGrid控件將是一條路?或者,有沒有人可以提出另一種更可取的方法。

我欣賞任何建議和指針。

結果看起來是這樣的: enter image description here

+0

僅供參考,這是ASP.NET,而不是ASP Classic。 –

+0

對不起,約翰。我包含ASP Classic標籤,因爲實際的標題和正文是從.bsp頁面上的vbscript構建的。 – Kevin

回答

1

你會更好使用簡單的ASP:直放站這一點。這樣,您就可以完全控制用於塑造用戶界面的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> 

然後在後面的代碼,你會綁定父RPT1然後在rpt1.ItemDataBound:

 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 

這是很明顯,一個簡單的例子,你將不得不擴展到精細的期望的用戶界面但希望你能看到這種方法的靈活性。此外,您不必將一些大型數據集綁定到中繼器,因爲您必須使用asp:DataGrid

+0

這樣的聲音對我所要做的事很好。我之前使用過中繼器(用於顯示不同的圖片,例如Google上的搜索頁面結果),所以我至少對他們非常熟悉,以便繼續前進。我只考慮使用DataGrid,因爲我正在閱讀顯示錶格數據的網站的建議。我很欣賞答案! – Kevin

+0

沒問題!雅愛使用asp:中繼器和乾淨的HTML和CSS。感覺像我在控制,而不是asp:DataGrid,它可以非常強大,但有時對於自定義U.I. –

相關問題