推薦:asp.NET自定義服務(wù)器控件內(nèi)部細(xì)節(jié)如大家要轉(zhuǎn)載,請(qǐng)保留本人的版權(quán):/* *Description:asp.NET自定義服務(wù)器控件內(nèi)部細(xì)節(jié)系列教程*Auther:崇崇-天真的好藍(lán) *MSN:chongchong2008@msn.com *Dates:2007-05-20*Copyright:ChongCho
本文,我將結(jié)合這幾個(gè)數(shù)據(jù)控件對(duì)GridView控件做一個(gè)詳細(xì)的介紹,使用戶能夠?qū)γ總€(gè)數(shù)據(jù)行獲得一個(gè)詳細(xì)的了解。
主要控件
DetailsView 和 FormView控件在顯示后端數(shù)據(jù)源中的單個(gè)記錄時(shí)功能強(qiáng)大,但是強(qiáng)迫用戶在一頁(yè)中顯示無(wú)數(shù)條記錄這很不現(xiàn)實(shí)。為此,我們可以將GridView控件和DetailsView或FormView控件結(jié)合在一起,來(lái)讓用戶從GridView控件中選擇單個(gè)列,然后利用DetailsView或FormView控件來(lái)瀏覽或操縱其中的內(nèi)容。因此,GridView是主要控件,而細(xì)節(jié)則是通過(guò)其他控件顯示的。
這種方法的第一步是設(shè)法可以選擇GridView控件中的單個(gè)行(例如,可以允許用戶選擇一行顯示在其它控件中)。此外,GridView控件的SelecterStyle屬性可以顯式的設(shè)定所選行的風(fēng)格,從而用戶知道或可以很容易的記住當(dāng)前選擇的是哪一行。
可以使用一個(gè)命令域來(lái)輔助行選擇。CommandField對(duì)象的ShowSelectButton屬性使得該對(duì)象成為行選擇的對(duì)象。CommandField的ButtonType屬性允許你控制如何進(jìn)行選擇,當(dāng)選定一行時(shí),GridView控件的DataKeyName屬性指名分配給選定項(xiàng)的值,該值可能通過(guò)選擇事件傳遞給其他控件。
當(dāng)單擊GridView中某行的選擇按鈕時(shí),隨即發(fā)生返回且更新GridView的SelectedRow屬性。除了SelectedRow屬性外,GridView控件還提供了SelectedIndex、SelectedValue、 和SelectedDataKey屬性。SelectedIndex屬性返回選定行的索引,而SelectedValue和SelectedDatakey屬性返回基于GridView的DataKeyNames屬性的值。
細(xì)節(jié)
既然已經(jīng)設(shè)定好主要的GridView控件,下一步就可以添加一個(gè)DetailsView或FormView控件來(lái)顯示選定行中的數(shù)據(jù)。在我們的例子中,DetailsView控件將被添加到GridView所在的頁(yè)面中。此外,DetailsView需要一個(gè)數(shù)據(jù)源,因此要求另外一個(gè)SQL Server數(shù)據(jù)源。我們想顯示GridView控件中選定行中的數(shù)據(jù),所以需要傳遞所選行的ID。
演示GridView控件與其它數(shù)據(jù)控件相結(jié)合應(yīng)用的最好方式就是利用實(shí)例代碼。下面的GridView控件連接到SQL Servcer,顯示Northwind數(shù)據(jù)庫(kù)中數(shù)據(jù)。這里使用了三個(gè)控件:DropDownList、GridView和DetailsView。
用戶可以使用DropDownList控件指定加載到GridView控件中的數(shù)據(jù)。用戶選擇某個(gè)“城市”,響應(yīng)員工的數(shù)據(jù)就被加載。因此,當(dāng)在GridView控件中通過(guò)顯示為鏈接標(biāo)簽的命令按鈕選擇了某個(gè)記錄后,指定員工的詳細(xì)信息將會(huì)顯示在DetailsView控件中。同時(shí),選定行呈黃色高亮狀態(tài),從而用戶可以容易的識(shí)別選擇的是哪一行。
代碼中使用了三個(gè)SqlDataSource對(duì)象用于為每個(gè)控件加載數(shù)據(jù)。GridView控件使用了來(lái)自DropDownList控件的SQL中的選定值,這是通過(guò)將來(lái)自DropDownList控件的值利用SqlDataSource控件的SelectParameters屬性傳遞給SQL的。見列表A所示。
你可以使用ControlParameter對(duì)象通過(guò)指定你想使用的數(shù)據(jù)的ID和屬性來(lái)獲得表單上其它控件中的數(shù)據(jù)。同時(shí),當(dāng)傳遞SelectedValue屬性時(shí),鍵值也通過(guò)ControlParameter對(duì)象從GridView傳遞到DetailView控件。GridView中選定行的SelectedValue使用指定給GridView控件的DataKeyNames值被賦值。此外,為了從控件獲得數(shù)據(jù),你還可以使用來(lái)自QuerySring,cookies和很多其它選項(xiàng)的數(shù)據(jù)。
列表B中包括了擁有三個(gè)控件和用于數(shù)據(jù)加載的對(duì)象全部源代碼,本例演示了使用數(shù)據(jù)控件操縱數(shù)據(jù)而不用編寫任何代碼。每個(gè)控件提供了大量的事件可用來(lái)為這些事件編寫代碼實(shí)現(xiàn)本文的同樣任務(wù)和更多其它任務(wù)。
更多強(qiáng)大接口
ASP.NET 2.0包括大量以GridView為代表的數(shù)據(jù)控件,我們使用這些控件可以很容易地顯示來(lái)自后端數(shù)據(jù)源中的數(shù)據(jù)。你還可以將GridView控件和其它的像DetailsView或FormView控件結(jié)合起來(lái)使用來(lái)操縱更多的數(shù)據(jù)對(duì)象,以及在一個(gè)表單域或單獨(dú)一個(gè)表單中顯示要編輯或?yàn)g覽的數(shù)據(jù)。
分享:ASP.NET 2.0實(shí)現(xiàn)防止同一用戶同時(shí)登陸要防止同一用戶同時(shí)登陸,首頁(yè)應(yīng)該記錄在線用戶的信息(這里與用戶名為例),然后判斷正在登陸的用戶里面是否已存在。在這里使用一個(gè)cache存放已經(jīng)登陸的用戶名,但是還有一個(gè)問(wèn)題就是要知道用戶是
新聞熱點(diǎn)
疑難解答
圖片精選