ASP.NET 2.0 – 如何巢状化GridView控件
圖表 1
?
最近聽到有許多朋友詢問如何以巢狀方式使用GridView控件,也就是說在GridView控件中再內含另外一個GridView控件。我們最近在撰寫ASP.NET AJAX一書時,剛好撰寫了一個這樣的范例,在此與大家分享其關鍵技巧。
?
圖表1所示者是我們所撰寫的網頁范例,從外觀可以看出,我們是以巢狀方式使用GridView控件。外層的GridView控件用以顯示產品類別數據(也就是父數據記錄),內層的GridView控件用以顯示特定類別的各項產品(也就是子數據記錄)。要如何制作這樣的界面呢?關鍵技巧說明如下:
?
q????????? 首先,您必須替外層的GridView控件加入一個樣版數據行(也就是TemplateField),并于此樣版數據行中加入一個GridView控件(如圖表2所示),這一個位于樣版數據行中的GridView控件將成為內層的GridView控件。
?
圖表 2
?
q????????? 請替外層GridView控件的RowDataBound事件處理例程撰寫下列程序代碼,以便將外層之產品類別數據列的「類別編號」字段值指派給內層GridView控件之數據來源之SELECT陳述式的CategoryID參數,如此一來,內層GridView控件就會顯示出與所在產品類別數據列相關聯的產品數據:
Protected Sub ProductCategoryGridView_RowDataBound( _
? ByVal sender As Object, _
? ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) _
? Handles ProductCategoryGridView.RowDataBound
? If e.Row.RowType = DataControlRowType.DataRow Then
????? Dim s As SqlDataSource = _
??????? CType(e.Row.FindControl("ProductsDataSource"), SqlDataSource)
????? Dim r As System.Data.DataRowView = _
??????? CType(e.Row.DataItem, System.Data.DataRowView)
????? s.SelectParameters("CategoryID").DefaultValue = r("類別編號").ToString()
? End If
End Sub
?
本文內容節錄自章立民研究室正在撰寫的「ASP.NET AJAX大解密一書」(書名暫定)。
?
?
總結
以上是生活随笔為你收集整理的ASP.NET 2.0 – 如何巢状化GridView控件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Oracle 数据库DBA管理手册!
- 下一篇: 电脑蓝