成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

修改ASP.NET DataGrid的樣式

開發 后端
本文介紹如何修改ASP.NET DataGrid的樣式。DataGrid 允許您修改成分單元格的樣式和布局,這可通過掛鉤ItemCreated 事件來完成。
ASP.NET DataGrid的樣式

ASP.NET DataGrid 允許您修改成分單元格的樣式和布局,這可通過掛鉤 ItemCreated 事件來完成。該控件每次處理子項(頁眉、頁腳、行、頁導航)時,該事件都會被激發。事件處理程序接收類型為 DataGridItemEventArgs 的參數,您可以從該參數提取所處理項目的類型。

匯總行是 DataGrid 行,同樣,它的類型可以是 ItemAlternatingItem。因此,在編寫 ItemCreated 處理程序時,要確保只有在該項的類型正確時才處理相應的單元格。下面的列表概述所需的代碼。

  1. public void ItemCreated(Object sender, DataGridItemEventArgs e)  
  2. {  
  3.     // Get the type of the newly created item  
  4.     ListItemType itemType = e.Item.ItemType;  
  5.     if (itemType == ListItemType.Item ||   
  6.     itemType == ListItemType.AlternatingItem)   
  7.     {  
  8.         // Get the data bound to the current row  
  9.         DataRowView drv = (DataRowView) e.Item.DataItem;  
  10.     if (drv != null)  
  11.     {  
  12.         // Check here the app-specific way to detect whether the   
  13.         // current row is a summary row  
  14.         :  
  15.     }  
  16.     }  
  17. }  

如果所創建的項是 DataGrid 項(或交替項),則可以通過 DataItem 屬性訪問綁定到行的數據。根據 DataGrid 綁定到的對象的類型,DataItem 屬性會指向不同的行對象。如果網格綁定到 DataView,會獲取 DataRowView 對象;如果該源用 DataTable 對象來表示,會獲取 DataRow 對象。在該示例應用程序中,我使用 DataView 對象填充了網格。后來,單行的數據對象成為 DataRowView 對象。

在擁有了數據行對象之后,可以應用一些應用程序特定的規則來確定該行是否為匯總行。在該示例應用程序中,匯總行的 MyOrderID 字段設置為 –1。

  1. if ((int) drv["MyOrderID"] == -1)  
  2. {  
  3.    // Modify style and layout here.   
  4.    //    --> Set the background color to white and use bold font  
  5.    e.Item.BackColor = Color.White;   
  6. e.Item.Font.Bold = true;      

DataGrid 現在看上去如下圖所示。

以粗體顯示且背景為白色的匯總行

DataGrid的樣式:以粗體顯示且背景為白色的匯總行

DataGrid 行實際上只是表中的一行。同樣,使用它可以很好地進行單元格刪除以及其他調整。讓我們看一看如何使用跨越所有現有列的單一單元格來呈現匯總行。

  1. if ((int) drv["MyOrderID"] == -1) 

具有自定義布局的匯總行

DataGrid的樣式:具有自定義布局的匯總行

在這三個原始單元格中,前兩個被刪除,第三個(現在包含索引 0)被正確對齊并跨越外部表的寬度。如果您希望在匯總行上顯示一些自定義文本,則需要做好面對其他問題的準備。

假設您需要添加一些文本以對小計進行注釋,而且與此同時,讓小計與單個定單量出現在同一列中。在這種情況下,只需刪除一個單元格。

  1. e.Item.Cells.RemoveAt(1);         // remove the order # cell  
  2. e.Item.Cells[0].ColumnSpan = 2;      // span the custID cell  
  3. e.Item.Cells[1].HorizontalAlign = HorizontalAlign.Right;  
  4. e.Item.Cells[0].Text = "Total is"

此代碼的結果如下所示。正如您所看到的那樣,它與您的預期結果不完全相同。匯總行的第一個單元格中并沒有您剛剛設置的文本。這是怎么回事呢?

具有修改后的自定義布局的匯總行

DataGrid的樣式:具有修改后的自定義布局的匯總行

此處需要考慮的重要一點是,ItemAlternatingItem 行均為綁定行。它們的明確文本只是在 OnItemDataBound 事件的過程中設置。您可能已經猜到了,OnItemDataBound 事件會在創建該項之后激發。因此,在處理 ItemCreated 時分配給單元格的任何文本在后來都由某個事件以靜默方式改寫。可通過設置 DataGrid 的 OnItemDataBound 屬性來掛鉤 OnItemDataBound 事件。

  1. < asp:DataGrid id="grid" runat="server"   
  2. AutoGenerateColumns="false" 
  3. :  
  4. OnItemCreated="ItemCreated" 
  5. OnItemDataBound="ItemDataBound" 
  6. OnPageIndexChanged="PageIndexChanged"> 
  7. The structure of the code for   
  8.                                                                                                                                                                                                                     ItemDataBound is shown below.  
  9. public void ItemDataBound(Object sender, DataGridItemEventArgs e)  
  10. {  
  11. DataRowView drv = (DataRowView) e.Item.DataItem;  
  12. if (drv == null)  
  13.     return;  
  14.  
  15. if ((int) drv["MyOrderID"] == -1)  
  16. {  
  17. if (drv["MyCustomerID"].ToString() == "(Total)")  
  18. {  
  19.     e.Item.BackColor = Color.Yellow;  
  20.     e.Item.Cells[0].Text = "Orders total";  
  21. }  
  22. else  
  23.     e.Item.Cells[0].Text = "Customer subtotal";  
  24. }  
  25. }  

最上面的一行是在黃色背景上繪制的,它顯示其他匯總行中的另一個文本。最終的 DataGrid 顯示如下。

最終的 DataGrid

DataGrid的樣式:最終的 DataGrid

以應用程序特定的劑量很好地混合 SQL 代碼和 ASP.NET 技術可以實現有效的 Web 數據庫應用程序。DataGrid 控件是一個前沿工具,可用來為它所提供的編程功能構建完美而又功能強大的 Web 應用程序,而且對于它所支持的自定義級別來說用途更多。

【編輯推薦】

  1. ASP.NET DataGrid控件數據分組操作
  2. 什么是ASP.NET DataGrid控件:完全模板化的網格
  3. ASP.NET的GridView與DataGrid控件比較淺析
  4. .NET新手指南:輕松自定義DataGridView控件
  5. C#中對DatagridView的部分常用操作
責任編輯:yangsai 來源: MSDN
相關推薦

2009-08-07 17:42:43

ASP.NET Dat

2009-08-03 18:29:31

GridView與Da

2009-08-12 14:38:05

ASP.NET Dat

2009-08-07 17:31:26

ASP.NET Dat

2009-07-22 17:45:35

ASP.NET教程

2009-08-03 14:22:33

什么是ASP.NET

2009-07-28 17:17:19

ASP.NET概述

2009-08-04 13:35:16

ASP.NET自定義樣

2009-07-27 12:22:03

ASP.NET和ASPASP.NET入門教程

2009-07-27 15:48:43

2009-07-29 11:19:03

JavaScriptASP.NET

2009-07-29 16:33:28

GreeterLogiASP.NET

2009-07-27 10:35:33

TypeConvertASP.NET

2009-07-29 14:52:12

IScriptContASP.NET

2009-08-07 18:04:22

ASP.NET Dat確認對話框

2009-07-29 17:11:25

ASP.NET ISA

2009-08-10 13:32:15

ASP.NET TimASP.NET組件設計

2009-07-29 16:08:07

ASP和ASP.NET

2009-07-22 18:03:00

ASP.NET ASP

2009-07-29 17:29:46

ASP與ASP.NET
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 99re在线视频| 欧美性一区二区三区 | 美女视频一区二区三区 | 九九久久国产 | 亚洲综合无码一区二区 | 偷派自拍 | 国产精品一区在线 | 国产精品av久久久久久久久久 | 黄色永久免费 | 久久精品青青大伊人av | 亚洲一区久久久 | 成人在线一区二区三区 | 精品日韩一区二区 | 欧美极品在线观看 | 91精品国产91久久久久久密臀 | 久草在线 | 国产91精品网站 | 国产精品精品视频一区二区三区 | 精品国产91乱码一区二区三区 | 99亚洲精品视频 | 91色在线| 亚洲视频欧美视频 | 一区二区视频在线观看 | 亚洲欧美一区二区三区在线 | av天天干 | 久久天天躁狠狠躁夜夜躁2014 | 成年人网站免费 | 精精国产xxxx视频在线野外 | 久久久久久久国产 | 中文字幕视频一区二区 | 欧美久久久久久久久 | 国产成人在线视频播放 | 午夜在线电影网 | 亚洲精品乱码久久久久久按摩观 | 最新日韩在线 | 九色网址 | 久久久久久久91 | 国产亚洲精品美女久久久久久久久久 | 成人网av | 亚洲一二三区在线观看 | 日韩精品一区二区三区中文在线 |