熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> ASP編程 >> 正文

DataGrid Web控件深度歷險(2) Part1

2022-06-13   來源: ASP編程 

  導言
  
  在第一部分我們研究了DataGrid的基本功能它可在HTML表格中顯示數據在第一部分我麼說明了將數據庫內容綁定至DataGrid是非常簡單的我們所要做的就是通過SQL查詢來生成一個DataReader對象將DataGrid的DataSource屬性設為這個DataReader對象然後調用DataGrid對象的DataBind()方法剩下的事情就是將DataGrid放置到HTML中它可通過如下代碼實現
  
  <asp:datagrid runat=server />
  就是這麼簡單遺憾的是通過這種簡單方法生成的DataGrid並不美觀生成的DataGrid僅僅是一個封裝了DataReader中所有列和行的簡單的HTML表格
  
  我們希望做到的是僅顯示DataReader中的部分列並且設定每一列的格式並且希望設定諸如背景顏色字體等可以應用到整個表格的格式最後如果能夠為每一列加上自定義的標題就更好了例如設定標題的背景色為不同的顏色或字體為粗體在這部分我們將研究如何完成所有這些任務!(DataGrid可以做更多的事情我們將在今後一系列文章中看到如何對數據庫結果進行分頁顯示允許用戶對數據排序等)
  
  設定DataGrid格式
  
  對於DataGrid我們有兩種設定格式的方法第一種方法是在服務器端代碼中通過程序進行設定例如為了將DataGrid的背景色設定為紅色可使用如下服務器端代碼
  
  <%@ Import Namespace=SystemDrawing %>
  <script runat=server>
  sub Page_Load(sender as Object e as EventArgs)
  
  DataGridIDBackColor = ColorRed
  
  end sub
  </script>
  另一種設定顯示屬性的方法是在DataGrid Web控件的標記中進行設定下面的代碼和上面的代碼效果是一樣的
  
  <asp:datagrid runat=server BackColor=Red />
  
  我個人喜歡後一種方法我發現在Web控件的標記中設定顯示屬性比在服務器端代碼中設定要簡潔(請注意對於服務器端代碼的方法需要引入SystemDrawing命名空間才能通過ColorRed對顏色進行引用對於在Web控件的標記中設定顯示屬性的方法僅需寫上BackColor=Red我覺得後一種方法更可讀)
  
  讓我們看一下用於設定DataGrid格式的有用的屬性
  
  l    BackColor — 設定背景顏色
  
  l    Font — 設定DataGrid的字體信息字體信息包括使用何種字體字號是否粗體斜體等
  
  l    CellPadding — 設定HTML表格中單元格內的邊距
  
  l    CellSpacing — 設定HTML表格中單元格之間的間距
  
  l    Width — 設定HTML表格的寬度(可以以像素百分比等為單位)
  
  l    HorizontalAlign — 設定表格在頁面上的對齊方式(左對齊右對齊居中未設定)
  
  一個使用上述屬性而使得表格變得漂亮的例子如下所示請注意DataGrid的Font屬性是一個對象它指向了FontInfo類FontInfo類包括Size Name Bold Italic等屬性為了設定Font對象所指向類的屬性必須通過連字符()完成這類似於VBNet和C#語言中表示對象屬性的點()
  
  <asp:DataGrid runat=server id=dgFAQs
  BackColor=#eeeeee Width=%
  HorizontalAlign=Center
  FontBold=True FontName=Verdana
  FontSize=pt />
  FAQID
  Description
  …
  DateEntered
  CatName
  
  
  Where can I host my ASP Web site for free (similar to GeoCities or Tripod or any of the many other free Web site sites)?
  
  // :: AM
  Getting Started
  
  
  How can I format numbers and date/times using ASPNET? For example I want to format a number as a currency
  
  // :: PM
  ASPNET
  
  …
  
  Databases Errors
  
  是否印象深刻?通過幾行文本我們改變了DataGrid的外觀生成了一個居中具有灰色和漂亮字體的HTML表格
  
  通過樣式發揮你的想象力
  
  DataGrid Web控件包含一些樣式你將發現通過樣式改變DataGrid的外觀非常有效這些樣式支持很多屬性包括BackColorForeColorHorizontalAlign和 Width(參考文檔可獲得更多信息)DataGrid包括四類樣式
  
  l    HeaderStyle — 設定頁眉的樣式(頁眉指表格的最上面一行它列出了每列的名稱要顯示頁眉需將DataGrid的ShowHeader屬性設為True(缺省為True) )
  
  l    FooterStyle —設定頁腳的樣式(頁腳指表格的最下面一行要顯示頁腳需將DataGrid的ShowFooter屬性True(缺省為False))
  
  l    ItemStyle — 設定表格中每一行的樣式
  
  l    AlternatingItemStyle — 設定表格中交替行的樣式通過將ItemStyle和AlternatingItemStyle設為不同的值使得DataGrid便於閱讀(可參考下面的示例)
  
  和設定DataGrid的格式類似樣式可通過程序或DataGrid Web控件的標記進行設定如上所述我個人喜歡使用Web控件的標記並且將在示例中使用該方法第一種方法與通過代碼設置DataGrid的格式類似通過在對象後面加一個點即如果想設定HeaderStyle的BackColor可在代碼中通過HeaderStyleBackColor=ColorRed實現
  
  另一個方法是通過在Web 控件的標記中使用特別的樣式塊如下所示
  
  <asp:DataGrid runat=server>
  <HeaderStyle BackColor=Red />
  </asp:DataGrid>
  兩種方法均可行我發現嵌入標記的方法便於閱讀特別是當你需要為眾多樣式設定眾多屬性時下面的示例顯示如何美化先前的示例
  
  <asp:DataGrid runat=server id=dgFAQs
  BackColor=#eeeeee Width=%
  HorizontalAlign=Center
  FontName=Verdana
  FontSize=pt>
  <HeaderStyle BackColor=Black ForeColor=White
  FontBold=True HorizontalAlign=Center />
  <AlternatingItemStyle BackColor=White />
  </asp:datagrid>
  示例運行結果如下
  
  FAQID
  Description
  ViewCount
  
  FAQCategoryID
  DateEntered
  
  
  Where can I host my ASP Web site for free (similar to GeoCities or Tripod or any of the many other free Web site sites)?
  
  …
  
  // :: AM
  
  
  How can I format numbers and date/times using ASPNET? For example I want to format a number as a currency
  
  
  
  // :: PM
  
  
  I am using Access and getting a error (or a [Microsoft][ODBC Microsoft Access Driver] The Microsoft Jet database engine cannot open the file (unknown) error) when trying to open a connection! How can I fix this problem?
  
  
  
  // :: PM
  
  …
  
  現在我們已經研究了如何使用樣式以及如何設定DataGrid控件的全局顯示屬性(格式)下面還需要研究一個主題如何對每一個特定列設定樣式和顯示屬性我們將在本文第二部分討論這項技術

From:http://tw.wingwit.com/Article/program/ASP/201311/21818.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.