ASP.NET DetailsView中顯示選中產(chǎn)品的詳細信息
完成ProductsGrid GridView后, 剩下就是增加一個DetailsView, 它顯示選中的產(chǎn)品的詳細信息. 在GridView的上方添加一個DetailsView控件并創(chuàng)建一個新的數(shù)據(jù)源命名為ProductDetailsDataSource. 由于我們想讓這個DetailsView顯示選中產(chǎn)品的詳細信息, 配置ProductDetailsDataSource使用ProductsBLL類的GetProductByProductID(productID)方法.
ASP.NET DetailsView: 調用 ProductsBLL 類的GetProductByProductID(productID) 方法
讓productID從GridView控件的SelectedValue屬性獲取參數(shù)值.如同我們前面討論過的, GridView的SelectedValue屬性返回選中行的***個數(shù)據(jù)鍵值. 因此必須把GridView的DataKeyNames屬性設置為ProductID, 這樣選中行的ProductID就可以通過SelectedValue屬性返回了.
ASP.NET DetailsView: 把productID 參數(shù)關聯(lián)到GridView的 SelectedValue 屬性.
配置好productDetailsDataSource ObjectDataSource并把它綁定到DetailsView后, 這篇教程就算完成了! ***次訪問時沒有行被選中, 所以GridView的 SelectedValue屬性返回null. 由于沒有ProductID值為Null的產(chǎn)品, GetProductByProductID(productID)方法不返回任何記錄, DetailsView也就無法顯示(如圖11). 單擊GridView的選擇按鈕后會引起一次回發(fā)并更新DetailsView. GridView的SelectedValue屬性返回選中行的ProductID, GetProductByProductID(productID)方法返回特定產(chǎn)品的信息ProductsDataTable, DetailsView顯示這些詳細信息(如圖12).
ASP.NET DetailsView: ***次訪問時只顯示GridView
ASP.NET DetailsView: 選擇一行后顯示產(chǎn)品的詳細信息
【編輯推薦】