在前面的幾個專欄中,我們分別介紹了asp.net 2.0中的幾個數據控件:gridview, detailsview, 和formview。本文,我將結合這幾個數據控件對gridview控件做一個詳細的介紹,使用戶能夠對每個數據行獲得一個詳細的了解。
主要控件
detailsview 和 formview控件在顯示后端數據源中的單個記錄時功能強大,但是強迫用戶在一頁中顯示無數條記錄這很不現實。為此,我們可以將gridview控件和detailsview或formview控件結合在一起,來讓用戶從gridview控件中選擇單個列,然后利用detailsview或formview控件來瀏覽或操縱其中的內容。因此,gridview是主要控件,而細節則是通過其他控件顯示的。
這種方法的第一步是設法可以選擇gridview控件中的單個行(例如,可以允許用戶選擇一行顯示在其它控件中)。此外,gridview控件的selecterstyle屬性可以顯式的設定所選行的風格,從而用戶知道或可以很容易的記住當前選擇的是哪一行。
可以使用一個命令域來輔助行選擇。commandfield對象的showselectbutton屬性使得該對象成為行選擇的對象。commandfield的buttontype屬性允許你控制如何進行選擇,當選定一行時,gridview控件的datakeyname屬性指名分配給選定項的值,該值可能通過選擇事件傳遞給其他控件。
當單擊gridview中某行的選擇按鈕時,隨即發生返回且更新gridview的selectedrow屬性。除了selectedrow屬性外,gridview控件還提供了selectedindex、selectedvalue、 和selecteddatakey屬性。selectedindex屬性返回選定行的索引,而selectedvalue和selecteddatakey屬性返回基于gridview的datakeynames屬性的值。
細節
既然已經設定好主要的gridview控件,下一步就可以添加一個detailsview或formview控件來顯示選定行中的數據。在我們的例子中,detailsview控件將被添加到gridview所在的頁面中。此外,detailsview需要一個數據源,因此要求另外一個sql server數據源。我們想顯示gridview控件中選定行中的數據,所以需要傳遞所選行的id。
演示gridview控件與其它數據控件相結合應用的最好方式就是利用實例代碼。下面的gridview控件連接到sql servcer,顯示northwind數據庫中數據。這里使用了三個控件:dropdownlist、gridview和detailsview。
用戶可以使用dropdownlist控件指定加載到gridview控件中的數據。用戶選擇某個“城市”,響應員工的數據就被加載。因此,當在gridview控件中通過顯示為鏈接標簽的命令按鈕選擇了某個記錄后,指定員工的詳細信息將會顯示在detailsview控件中。同時,選定行呈黃色高亮狀態,從而用戶可以容易的識別選擇的是哪一行。
代碼中使用了三個sqldatasource對象用于為每個控件加載數據。gridview控件使用了來自dropdownlist控件的sql中的選定值,這是通過將來自dropdownlist控件的值利用sqldatasource控件的selectparameters屬性傳遞給sql的。見列表a所示。
你可以使用controlparameter對象通過指定你想使用的數據的id和屬性來獲得表單上其它控件中的數據。同時,當傳遞selectedvalue屬性時,鍵值也通過controlparameter對象從gridview傳遞到detailview控件。gridview中選定行的selectedvalue使用指定給gridview控件的datakeynames值被賦值。此外,為了從控件獲得數據,你還可以使用來自querysring,cookies和很多其它選項的數據。
列表b中包括了擁有三個控件和用于數據加載的對象全部源代碼,本例演示了使用數據控件操縱數據而不用編寫任何代碼。每個控件提供了大量的事件可用來為這些事件編寫代碼實現本文的同樣任務和更多其它任務。
更多強大接口
asp.net 2.0包括大量以gridview為代表的數據控件,我們使用這些控件可以很容易地顯示來自后端數據源中的數據。你還可以將gridview控件和其它的像detailsview或formview控件結合起來使用來操縱更多的數據對象,以及在一個表單域或單獨一個表單中顯示要編輯或瀏覽的數據。
新聞熱點
疑難解答
圖片精選