台灣最大程式設計社群網站
線上人數
617
 
會員總數:245215
討論主題:189089
歡迎您免費加入會員
討論區列表 >> 專欄文章 >> 巢狀GridView範例(多筆訂單、訂單明細設計範例)錄影
[]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
巢狀GridView範例(多筆訂單、訂單明細設計範例)錄影
價值 : 0 QP  點閱數:1350 回應數:0

樓主

topcat 版主
高級顧問
102939 162
31968 12302
發送站內信

捐贈 VP 給 topcat
本篇文章同步發表於點部落與小舖的部落格:topcat姍舞之間的極度凝聚
點部落:http://www.dotblogs.com.tw/topcat/archive/2008/04/30/3755.aspx
小舖的部落格:http://blog.blueshop.com.tw/topcat/archive/2008/04/30/54924.aspx

有時候希望多筆顯示訂單,但是訂單Orders、訂單明細OrderDetail可能分屬於不同的資料表中,因此如果多筆顯示的時候,就可以使用這個【巢狀GridView】的技巧。

這個範例會說明兩個東西:

DropDownList與GridView互動:使用DropDownList顯示員工,當挑選了某個員工,則透過GridView顯示該員工的相關訂單內容。
巢狀GridView的設計:透過TemplateField的應用,將訂單明細用第二個GridView顯示在GridView1中的TemplateField中。
透過RowDataView使用欄位名稱取得GridView某欄位的內容
方式主要是透過外部的GridView1的RowDataBound事件,為訂單Orders的每個Row設定他內部的SqlDataSouce資料來源是GridView的哪個欄位。相關程式碼如下:

Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
'判斷是資料的Row才處理
If e.Row.RowType = DataControlRowType.DataRow Then
'透過FindControl取得裡面的SqlDataSouce物件
Dim sds1 As SqlDataSource = CType(e.Row.Cells(1).FindControl("sdsOrderDetail"), SqlDataSource)

'透過使用DataRowView,能夠用欄位名稱取得欄位的資料
Dim rw As System.Data.DataRowView = CType(e.Row.DataItem, System.Data.DataRowView)
'指定SelectParameter的內容
sds1.SelectParameters(0).DefaultValue = rw.Item("OrderID").ToString

End If
End Sub



執行結果畫面如下:

執行畫面

相關程式碼如下:

http://vip2.blueshop.com.tw/topcat/DEMO/GVGV/GVGV.zip


設計過程錄影如下超連結:

http://vip2.blueshop.com.tw/topcat/DEMO/GVGV/GVGV.html




搜尋相關Tags的文章: [ ASP.NET ] , [ GridView ] , [ 巢狀 ] ,
本篇文章發表於2008-04-30 15:17
== 簽名檔 ==
====== 以下是簽名檔(不是回應內容) ======
世界上有兩種東西,分享給別人後,不但不會變少,反而變更多
一個是快樂,另一個是知識
而分享知識,不但獲得更多知識,更獲得快樂~

知識,從分享開始....

歡迎到小喵的Blog:
Topcat姍舞之間的極度凝聚
https://dotblogs.com.tw/topcat/
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
目前尚無任何回覆
   

回覆
如要回應,請先登入.