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

修改ASP.NET DataGrid的樣式

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

ASP.NET DataGrid 允許您修改成分單元格的樣式和布局,這可通過(guò)掛鉤 ItemCreated 事件來(lái)完成。該控件每次處理子項(xiàng)(頁(yè)眉、頁(yè)腳、行、頁(yè)導(dǎo)航)時(shí),該事件都會(huì)被激發(fā)。事件處理程序接收類(lèi)型為 DataGridItemEventArgs 的參數(shù),您可以從該參數(shù)提取所處理項(xiàng)目的類(lèi)型。

匯總行是 DataGrid 行,同樣,它的類(lèi)型可以是 ItemAlternatingItem。因此,在編寫(xiě) ItemCreated 處理程序時(shí),要確保只有在該項(xiàng)的類(lèi)型正確時(shí)才處理相應(yīng)的單元格。下面的列表概述所需的代碼。

  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. }  

如果所創(chuàng)建的項(xiàng)是 DataGrid 項(xiàng)(或交替項(xiàng)),則可以通過(guò) DataItem 屬性訪(fǎng)問(wèn)綁定到行的數(shù)據(jù)。根據(jù) DataGrid 綁定到的對(duì)象的類(lèi)型,DataItem 屬性會(huì)指向不同的行對(duì)象。如果網(wǎng)格綁定到 DataView,會(huì)獲取 DataRowView 對(duì)象;如果該源用 DataTable 對(duì)象來(lái)表示,會(huì)獲取 DataRow 對(duì)象。在該示例應(yīng)用程序中,我使用 DataView 對(duì)象填充了網(wǎng)格。后來(lái),單行的數(shù)據(jù)對(duì)象成為 DataRowView 對(duì)象。

在擁有了數(shù)據(jù)行對(duì)象之后,可以應(yīng)用一些應(yīng)用程序特定的規(guī)則來(lái)確定該行是否為匯總行。在該示例應(yīng)用程序中,匯總行的 MyOrderID 字段設(shè)置為 –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 現(xiàn)在看上去如下圖所示。

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

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

DataGrid 行實(shí)際上只是表中的一行。同樣,使用它可以很好地進(jìn)行單元格刪除以及其他調(diào)整。讓我們看一看如何使用跨越所有現(xiàn)有列的單一單元格來(lái)呈現(xiàn)匯總行。

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

具有自定義布局的匯總行

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

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

假設(shè)您需要添加一些文本以對(duì)小計(jì)進(jìn)行注釋?zhuān)遗c此同時(shí),讓小計(jì)與單個(gè)定單量出現(xiàn)在同一列中。在這種情況下,只需刪除一個(gè)單元格。

  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"

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

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

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

此處需要考慮的重要一點(diǎn)是,ItemAlternatingItem 行均為綁定行。它們的明確文本只是在 OnItemDataBound 事件的過(guò)程中設(shè)置。您可能已經(jīng)猜到了,OnItemDataBound 事件會(huì)在創(chuàng)建該項(xiàng)之后激發(fā)。因此,在處理 ItemCreated 時(shí)分配給單元格的任何文本在后來(lái)都由某個(gè)事件以靜默方式改寫(xiě)。可通過(guò)設(shè)置 DataGrid 的 OnItemDataBound 屬性來(lái)掛鉤 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. }  

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

最終的 DataGrid

DataGrid的樣式:最終的 DataGrid

以應(yīng)用程序特定的劑量很好地混合 SQL 代碼和 ASP.NET 技術(shù)可以實(shí)現(xiàn)有效的 Web 數(shù)據(jù)庫(kù)應(yīng)用程序。DataGrid 控件是一個(gè)前沿工具,可用來(lái)為它所提供的編程功能構(gòu)建完美而又功能強(qiáng)大的 Web 應(yīng)用程序,而且對(duì)于它所支持的自定義級(jí)別來(lái)說(shuō)用途更多。

【編輯推薦】

  1. ASP.NET DataGrid控件數(shù)據(jù)分組操作
  2. 什么是ASP.NET DataGrid控件:完全模板化的網(wǎng)格
  3. ASP.NET的GridView與DataGrid控件比較淺析
  4. .NET新手指南:輕松自定義DataGridView控件
  5. C#中對(duì)DatagridView的部分常用操作
責(zé)任編輯:yangsai 來(lái)源: MSDN
相關(guān)推薦

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-08-03 14:22:33

什么是ASP.NET

2009-07-28 17:17:19

ASP.NET概述

2009-07-22 17:45:35

ASP.NET教程

2009-08-04 13:35:16

ASP.NET自定義樣

2009-07-27 12:22:03

ASP.NET和ASPASP.NET入門(mén)教程

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確認(rèn)對(duì)話(huà)框

2009-07-29 17:11:25

ASP.NET ISA

2009-08-10 13:32:15

ASP.NET TimASP.NET組件設(shè)計(jì)

2009-07-29 16:08:07

ASP和ASP.NET

2009-07-29 17:29:46

ASP與ASP.NET

2009-07-22 18:03:00

ASP.NET ASP
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 男女羞羞视频在线看 | 伊人免费在线观看高清 | 日韩欧美国产一区二区三区 | 国产免费a | 国产精品一区久久久 | 免费在线观看一区二区三区 | 在线观看中文字幕一区二区 | 精品久久久久久亚洲综合网站 | 亚洲精品国产电影 | 日韩欧美不卡 | 午夜三区| 久久国产精品一区 | 91在线视频 | 日韩 欧美 二区 | 97av视频在线观看 | 麻豆一区一区三区四区 | www九色 | 国产精品永久免费 | 欧美激情视频一区二区三区在线播放 | 久久综合入口 | 国产精品久久久久一区二区三区 | 日韩91| 狠狠操狠狠干 | 成人黄页在线观看 | 日韩av成人 | 黄色男女网站 | 久久精品成人 | 久久久久久看片 | 亚洲国产专区 | 在线看片网站 | 欧美性高潮 | 国产精品96久久久久久 | 欧美一区二区在线播放 | 欧美日韩高清在线一区 | 91精品国产一区二区三区 | av在线免费看网址 | 亚洲国产欧美日韩 | 一区二区三区四区电影 | 欧美人妇做爰xxxⅹ性高电影 | 国产一区二区免费 | 天天干狠狠操 |