![如何讓Gridview在沒(méi)有數(shù)據(jù)的時(shí)候顯示表頭_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/25/2af93c7e-4209-474d-9cf9-666cc424ce1f/2af93c7e-4209-474d-9cf9-666cc424ce1f1.gif)
![如何讓Gridview在沒(méi)有數(shù)據(jù)的時(shí)候顯示表頭_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/25/2af93c7e-4209-474d-9cf9-666cc424ce1f/2af93c7e-4209-474d-9cf9-666cc424ce1f2.gif)
![如何讓Gridview在沒(méi)有數(shù)據(jù)的時(shí)候顯示表頭_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/25/2af93c7e-4209-474d-9cf9-666cc424ce1f/2af93c7e-4209-474d-9cf9-666cc424ce1f3.gif)
![如何讓Gridview在沒(méi)有數(shù)據(jù)的時(shí)候顯示表頭_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/25/2af93c7e-4209-474d-9cf9-666cc424ce1f/2af93c7e-4209-474d-9cf9-666cc424ce1f4.gif)
![如何讓Gridview在沒(méi)有數(shù)據(jù)的時(shí)候顯示表頭_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/25/2af93c7e-4209-474d-9cf9-666cc424ce1f/2af93c7e-4209-474d-9cf9-666cc424ce1f5.gif)
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、如何讓Gridview在沒(méi)有數(shù)據(jù)的時(shí)候顯示表頭1 前言當(dāng)對(duì)GridView 控件進(jìn)行數(shù)據(jù)綁定時(shí),如果綁定的記錄為空,網(wǎng)頁(yè)上就不顯示 GridView 造成頁(yè)面部分空白,頁(yè)面布局結(jié)構(gòu)也受影響。下面討論的方法可以讓GridView 在沒(méi)有數(shù)據(jù)記錄的時(shí)候顯示表的字段結(jié)構(gòu)和顯示提示信息。2 數(shù)據(jù)為了讓GridView 顯示數(shù)據(jù),在數(shù)據(jù)庫(kù)中建立表temple ,其字段如下:temple 表示廟宇,它的字段有:temple_id inttemple_ namevarchar(50)locati on varchar(50)build_date datetimetemple 的數(shù)據(jù)為:temple idte
2、mple namelocati onbuild time1少林寺河南省登封市嵩山1900-2-2 0:00:002大杰寺五龍山1933-2-3 3:03:033法源寺宣武門(mén)外教子胡冋南端東側(cè)1941-2-3 5:04:034廣濟(jì)寺阜成門(mén)內(nèi)大街東口1950-3-3 3:03:035碧云寺香山東麓1963-3-3 3:03:033 .頁(yè)面建立一個(gè)asp. net網(wǎng)站工程,在頁(yè)面中添加GridView和幾個(gè)按鈕,代碼如下所示:<%PageLanguage="C#" AutoEventWireup ="true" CodeFile ="Defau
3、lt.aspx.cs" Inherits ="_Default" %><! DOCTYRfimlPUBLIC"-/W3C/DTD XHTML 1.0Transitional/EN""/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns ="/1999/xhtml"><headrunat ="server"><title >
4、;GridView綁定記錄為空顯示表頭測(cè)試 </title ></head><body>< form id ="form1" runat ="server">< div style ="font-size:13px;">< asp : GridView ID ="GridViewEmptyDataTest" runat ="server" AutoGenerateColumns ="False" EmptyDa
5、taText ="Data IsEmpty" BackColor="White"BorderColor="LightGray" BorderStyle="Double" BorderWidth ="3px"CellPadding ="4"GridLines="Horizontal"Width ="500px">< Columns >< asp : BoundFieldDataField="temple_
6、id"HeaderText ="temple_id"Visible ="False"></ asp : BoundField><asp: BoundField DataField ="temple_name" HeaderText ="名稱(chēng) ">< ItemStyle BorderColor="LightGray"BorderStyle="Double"BorderWidth="1px"Width ="
7、;100px"/></ asp : BoundField ><asp: BoundField DataField="location" HeaderText ="地址 ">< ItemStyle BorderColor="LightGray"BorderStyle="Double"BorderWidth="1px"Width ="300px"/></ asp : BoundField ><asp: Boun
8、dField DataField="build_date"HeaderText =" 建設(shè)時(shí)間 ">< ItemStyle BorderColor="LightGray"BorderStyle="Double"BorderWidth="1px"Width ="100px"/></ asp : BoundField ></ Columns >< FooterStyle BackColor ="White" Fo
9、reColor ="#333333"/>< RowStyle BackColor ="White" ForeColor ="#333333"/>< SelectedRowStyle BackColor ="#339966"Font-Bold ="True" ForeColor ="White"/>< PagerStyle BackColor ="#336666" ForeColor ="White"
10、HorizontalAlign ="Center"/>< HeaderStyle BackColor ="CornflowerBlue"Font-Bold ="True" ForeColor ="White"/></ asp : GridView >< br/><asp: Button ID="ButtonHasDataBind" runat ="server" Text =" 有數(shù)據(jù)綁定" Width =&
11、quot;109px" OnClick ="ButtonHasDataBind_Click"/><asp: Button ID="ButtonQueryEmptyBind" runat ="server" Text =" 查詢(xún)結(jié)果為空綁定" Width ="142px" OnClick ="ButtonQueryEmptyBind_Click"/><asp: Button ID="ButtonConstructTableBind&q
12、uot; runat ="server" Text =" 構(gòu)造空的 DataTable 綁定" Width ="164px" OnClick ="ButtonConstructTableBind_Click"/><asp: Button ID="ButtonNormalBind" runat ="server" Text =" 普通空數(shù)據(jù)綁定" Width ="127px" OnClick ="ButtonNorm
13、alBind_Click"/></div ></ form ></ bodyv/html >GridView 要綁定的字段和 temple 的字段一樣,在這里我們利用GridView 原有的功能,設(shè)定當(dāng)數(shù)據(jù)為空是顯示"Data Is Empty ”,如果沒(méi)有設(shè)定 EmptyDataText 屬性,當(dāng)綁定 的記錄為空時(shí),GridView 將不在頁(yè)面顯示。4 數(shù)據(jù)顯示編寫(xiě) ButtonNormalBind4 . 1普通空記錄顯示的事件函數(shù)ButtonNormalBind_Click,添加如下代碼,來(lái)測(cè)試沒(méi)有經(jīng)過(guò)處理的 GridView顯
14、示情況:protectedvoid ButtonNormalBind_Click( object sender, EventArgs e)DataTable dt = new DataTable ();dt.Colum ns.Add(dt.Colum ns.Add(dt.Colum ns.Add(dt.Colum ns.Add("temple_id"); "temple_ name");"locatio n"); "build_date");this .GridViewEmptyDataTest.DataSourc
15、e = dt;this .GridViewEmptyDataTest.DataBind();執(zhí)行這些代碼后,GridView顯示結(jié)果如下圖所一Data Is Empty示:可以看到這樣簡(jiǎn)單的提示看不岀GridView的結(jié)構(gòu)來(lái),在大多數(shù)的實(shí)際應(yīng)用中我們希望看到GridView到底有哪些字段。4 . 2增加空行來(lái)顯示GridView 的結(jié)構(gòu)我們知道只要 GridView 綁定的DataTable 有一行記錄,GridView 就會(huì)顯示表頭,所以當(dāng)DataTable為空時(shí)我們?cè)黾右粋€(gè)空行從而顯示表頭。我們把代碼改成如下所示:DataTable dt = newDataTable ();dt.Colu
16、m ns.Add("temple_id");dt.Colu mn s.Add("temple_ name");dt.Colu mn s.Add("locatio n");dt.Colum ns.Add("build_date");if (dt.Rows.Cou nt = 0)dt.Rows.Add(dt.NewRow();this .GridViewEmptyDataTest.DataSource = dt;this .GridViewEmptyDataTest.DataBind();在每次綁定前判斷,如果為空就增
17、加一空行,這樣綁定的結(jié)果如下圖所示:1名稱(chēng)地址建設(shè)時(shí)1可I可以看得表頭已經(jīng)可以顯示了,但是顯示的空行沒(méi)有任何數(shù)據(jù)也讓人費(fèi)解,可不可以增加一下提示信息呢?4 . 3增加空記錄提示我們?cè)跀?shù)據(jù)綁定后增加一些代碼對(duì)GridView進(jìn)行一下處理,讓顯示結(jié)果更友好。在this .GridViewEmptyDataTest.DataBind();后面增加代碼如下所示:int columnCount = dt.Columns.Count;GridViewEmptyDataTest.RowsO.Cells.Clear();GridViewEmptyDataTest.RowsO.Cells.Add(new Tab
18、leCell ();GridViewEmptyDataTest.RowsO.CellsO.Colu mn Spa n = colum nCou nt;GridViewEmptyDataTest.Rows0.Cells0.Text ="沒(méi)有記錄”;GridViewEmptyDataTest.Rows0.Cells0.Style.Add("text-align" , "center");改良后的顯示結(jié)果如下圖所示:名琢地址建設(shè)時(shí)閭沒(méi)有記錄看來(lái)顯示結(jié)果已經(jīng)達(dá)到了我們的要求,但是當(dāng)頁(yè)面上有其他按鈕操作導(dǎo)致頁(yè)面PostBack時(shí),頁(yè)面再次顯示確沒(méi)有了提示
19、信息變成如下圖所示的樣子:名稱(chēng)地址建設(shè)時(shí)間這并不是我們想要的4 . 4防止PostBack時(shí)頁(yè)面顯示變化為了防止顯示改變我們?cè)赑age_Load事件里添加如下代碼,從而重新綁定GridViewif (IsPostBack)/ 如果數(shù)據(jù)為空則重新構(gòu)造 Gridviewif (GridViewEmptyDataTest.Rows.Count = 1 &&GridViewEmptyDataTest.Rows0.Cells0.Text = "沒(méi)有記錄 ")int columnCount = GridViewEmptyDataTest.Columns.Count;Gr
20、idViewEmptyDataTest.Rows0.Cells.Clear();GridViewEmptyDataTest.Rows0.Cells.Add( new TableCell ();GridViewEmptyDataTest.Rows0.Cells0.ColumnSpan =columnCount;GridViewEmptyDataTest.Rows0.Cells0.Text =" 沒(méi)有記錄 "GridViewEmptyDataTest.Rows0.Cells0.Style.Add( "text-align" ,"center&quo
21、t; );這下我們的控件終于可以按我們的要求顯示了, 但是為了代碼的重用, 當(dāng)一個(gè)項(xiàng)目里有多個(gè) GridView 時(shí),避免充分些相同的代碼, 我們需要把代碼封裝成類(lèi), 從而讓所有的 GridView 數(shù) 據(jù)綁定時(shí)都可以輕易地實(shí)現(xiàn)我們的要求。4 5 封裝類(lèi)的封裝代碼如下所示:using System.Data ;using System.Web.UI.WebControls ;/<summary>/ Gridview 綁定的數(shù)據(jù)記錄為空時(shí)顯示 Gridview 的表頭,并顯示沒(méi)有記錄的提示/</summary>publicclass GridviewControl/ 當(dāng)
22、Gridview 數(shù)據(jù)為空時(shí)顯示的信息privatestaticstring EmptyText = " 沒(méi)有記錄 "public GridviewControl()/<summary>/ 防止 PostBack 后 Gridview 不能顯示/</summary>/<param name="gridview"></param>publicstaticvoid ResetGridView( GridView gridview)/ 如果數(shù)據(jù)為空則重新構(gòu)造 Gridviewif (gridview.Rows.C
23、ount = 1 && gridview.Rows0.Cells0.Text = EmptyText)int columnCount = gridview.Columns.Count;gridview.Rows0.Cells.Clear();gridview.Rows0.Cells.Add( new TableCell (); gridview.Rows0.Cells0.ColumnSpan = columnCount; gridview.Rows0.Cells0.Text = EmptyText; gridview.Rows0.Cells0.Style.Add( "
24、text-align" , "center" );/<summary>/ 綁定數(shù)據(jù)到 GridView ,當(dāng)表格數(shù)據(jù)為空時(shí)顯示表頭/</summary>/<param name="gridview"></param>/<param name="table"></param>publicstaticvoid GridViewDataBind( GridView gridview, DataTable table)/ 記錄為空重新構(gòu)造 Gridviewif
25、(table.Rows.Count = 0)table = table.Clone();table.Rows.Add(table.NewRow();gridview.DataSource = table;gridview.DataBind();int columnCount = table.Columns.Count;gridview.Rows0.Cells.Clear();gridview.Rows0.Cells.Add( new TableCell (); gridview.Rows0.Cells0.ColumnSpan = columnCount; gridview.Rows0.Cells0.Text = EmptyText; gridview.Rows0.Cells0.Style.Add( "text-align&quo
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年女式內(nèi)增高鞋項(xiàng)目投資可行性研究分析報(bào)告
- 2025年度城市綜合體施工合同封面(商業(yè)地產(chǎn))
- 2025年飲料灌裝機(jī)項(xiàng)目可行性研究報(bào)告
- 2025年度護(hù)理員崗位責(zé)任聘用協(xié)議書(shū)
- 2025年度舊車(chē)交易車(chē)輛信息真實(shí)性承諾書(shū)
- 2025年度基坑支護(hù)與降水施工安全生產(chǎn)合同
- 2025年客房椅項(xiàng)目投資可行性研究分析報(bào)告
- 2025年度家電售后服務(wù)外包合同
- 2020-2025年中國(guó)自卸農(nóng)用車(chē)行業(yè)市場(chǎng)運(yùn)營(yíng)現(xiàn)狀及投資方向研究報(bào)告
- 2025年中國(guó)保險(xiǎn)IT市場(chǎng)供需現(xiàn)狀及投資戰(zhàn)略研究報(bào)告
- 病歷書(shū)寫(xiě)規(guī)范細(xì)則(2024年版)
- 2024-2025學(xué)年人教版八年級(jí)上冊(cè)地理期末測(cè)試卷(二)(含答案)
- 做賬實(shí)操-牙科診所的賬務(wù)處理
- 雙方共同買(mǎi)車(chē)合同范例
- 汽車(chē)智能制造技術(shù)課件
- 中醫(yī)外治法課件
- 2025屆山東省濱州市三校聯(lián)考語(yǔ)文高三第一學(xué)期期末質(zhì)量跟蹤監(jiān)視試題含解析
- 道路運(yùn)輸企業(yè)主要負(fù)責(zé)人和安全生產(chǎn)管理人員安全考核題(公共部分題+專(zhuān)業(yè)部分題)及答案
- 4.2 歌曲《牧羊女》課件(14張)
- 2023電化學(xué)儲(chǔ)能電站消防安全標(biāo)準(zhǔn)鉛炭電池(鉛酸電池)
- 2024都市人群科學(xué)護(hù)肝白皮書(shū)-byhealthx庶正康訊x天貓-202409
評(píng)論
0/150
提交評(píng)論