GrideView屬性的學習

GridView 控件可公開分頁事件和排序事件,以及在創建當前行或將當前行綁定至數據時發生的事件。單擊一個命令控件(例如,包含在 GridView 控件中作為其中的一部分的 Button 控件)時也會引發事件。下表描述了由 GridView 控件公開的事件。

RowCommand

在 GridView 控件中單擊某個按鈕時發生。此事件通常用于在該控件中單擊某個按鈕時執行某項任務。

PageIndexChanging

在單擊頁導航按鈕時發生,但在 GridView 控件執行分頁操作之前。此事件通常用于取消分頁操作。

PageIndexChanged

在單擊頁導航按鈕時發生,但在 GridView 控件執行分頁操作之后。此事件通常用于在用戶定位到該控件中不同的頁之后需要執行某項任務時。

SelectedIndexChanging

在單擊 GridView 控件內某一行的 Select 按鈕(其 CommandName 屬性設置為“Select”的按鈕)時發生,但在 GridView 控件執行選擇操作之前。此事件通常用于取消選擇操作。

SelectedIndexChanged

在單擊 GridView 控件內某一行的 Select 按鈕時發生,但在 GridView 控件執行選擇操作之后。此事件通常用于在選擇了該控件中的某行后執行某項任務。

Sorting

在單擊某個用于對列進行排序的超鏈接時發生,但在 GridView 控件執行排序操作之前。此事件通常用于取消排序操作或執行自定義的排序例程。

Sorted

在單擊某個用于對列進行排序的超鏈接時發生,但在 GridView 控件執行排序操作之后。此事件通常用于在用戶單擊對列進行排序的超鏈接之后執行某項任務。

RowDataBound

在 GridView 控件中的某個行被綁定到一個數據記錄時發生。此事件通常用于在某個行被綁定到數據時修改該行的內容。

RowCreated

在 GridView 控件中創建新行時發生。此事件通常用于在創建某個行時修改該行的布局或外觀。

RowDeleting

在單擊 GridView 控件內某一行的 Delete 按鈕(其 CommandName 屬性設置為“Delete”的按鈕)時發生,但在 GridView 控件從數據源刪除記錄之前。此事件通常用于取消刪除操作。

RowDeleted

在單擊 GridView 控件內某一行的 Delete 按鈕時發生,但在 GridView 控件從數據源刪除記錄之后。此事件通常用于檢查刪除操作的結果。

RowEditing

在單擊 GridView 控件內某一行的 Edit 按鈕(其 CommandName 屬性設置為“Edit”的按鈕)時發生,但在 GridView 控件進入編輯模式之前。此事件通常用于取消編輯操作。

RowCancelingEdit

在單擊 GridView 控件內某一行的 Cancel 按鈕(其 CommandName 屬性設置為“Cancel”的按鈕)時發生,但在 GridView 控件退出編輯模式之前。此事件通常用于停止取消操作。

RowUpdating

在單擊 GridView 控件內某一行的 Update 按鈕(其 CommandName 屬性設置為“Update”的按鈕)時發生,但在 GridView 控件更新記錄之前。此事件通常用于取消更新操作。

RowUpdated

在單擊 GridView 控件內某一行的 Update 按鈕時發生,但在 GridView 控件更新記錄之后。此事件通常用來檢查更新操作的結果。

DataBound

此事件繼承自 BaseDataBoundControl 控件,在 GridView 控件完成到數據源的綁定后發生。

在創建gridView控件時,必須先為GridView的每一行創建一個GridViewRow對象,創建每一行時,將引發一個RowCreated事件;當行創建完畢,每一行GridViewRow就要綁定數據源中的數據,當綁定完成后,將引發RowDataBound事件。如果說我們可以利用RowCreated事件來控制每一行綁定的控件,那么我們同樣可以利用RowDataBound事件來控制每一行綁定的數據,也就是讓數據如何呈現給大家。

還舉同樣的例子,在數據表中,存在性別列,上面我們用DropListDown控件的DataBounding來表示出了中文的性別,但是畢竟不太美觀,我們現在可以利用Label控件和RowDataBound事件來實現完美的中文性別顯示。RowDataBound,

首先,還是把性別列,設置為模板列,并添加一個Label控件,將Label控件綁定到數據源的性別段,然后我們在GridView控件屬性的事件列表中雙擊RowDataBound,生成如下事件:

Example:

????protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)

{

//判斷當前行是否是數據行

????????if (e.Row.RowType == DataControlRowType.DataRow)

????????{??//用FindControl方法找到模板中的Label控件

Label lb1= (Label)e.Row.FindControl("Label1");

//因為RowDataBound是發生在數據綁定之后,所以我們可以

//判斷Label綁定的數據,如果是True,就更改其text屬性為男

????????????????if (lb1.Text== "True")

??????????????????????lb1.Text = "男";

????????????????else

??????????????????????lb1.Text = "female";

????????}

????}

?

3、RowType

RowType可以確定GridView中行的類型,RowType是玫舉變量DataControlRowType中的一個值。RowType可以取值包括 DataRow、Footer、Header、EmptyDataRow、Pager、Separator。很多時候,我們需要判斷當前是否是數據行,通過如下代碼來進行判斷:

???if (e.Row.RowType == DataControlRowType.DataRow)

?

4、RowDeleting和RowDeleted事件

RowDeleting發生在刪除數據之前,RowDeleted發生在刪除數據之后。

使用RowDeleting事件,可以在真正刪除前再次確認是否刪除,可以通過設置GridViewDeleteEventArgs.Cancel=True來取消刪除;也可以用于判斷當前數據庫記錄數,如果只剩一條記錄且數據庫不能為空則提示并取消刪除操作。

使用RowDeleted事件,可以在刪除后,通過GridViewDeletedEventArgs的Exception屬性判斷刪除過程中是否產生異常,如無異常,則可以顯示類似于” 1 Records deleted” 之類的提示信息。

Example:

????protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)

{

//取得當前行號,并取得當前行的GridViewRow對象

????????int index=e.RowIndex ;

????????GridViewRow gvr=GridView1.Rows[index];

//取得當前行第二個單元格中的文字

????????str1 = gvr.Cells[1].Text;

//進行提示

????????Message.Text??="您將刪除一個用戶,其姓名為"+str1 ;

????}

????protected void GridView1_RowDeleted(object sender, GridViewDeletedEventArgs e)

{

//如果沒有產生異常,則提示成功刪除,否則提示刪除失敗

????????if (e.Exception == null)

????????????Message.Text += "<br>您成功刪除了"+str1 ;

????????else

????????????Message.Text += "刪除失敗,請聯系管理員";

}

5、RowEditing事件

在GridView中的行進入編輯模式之前,引發RowEditing事件,如果您需要在編輯記錄前進行某些預處理,可以在這里操作。如果想取消對當前行的編輯,可以把GridViewEditEventArgs 對象的 Cancel 屬性設置為 true即可。

Example:

????protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)

{

//用NewEidIndex取得當前編輯的行號,然后獲取gridviewrow對象

????????GridViewRow gvr = GridView1.Rows[e.NewEditIndex];

?

//判斷,如果當前編輯行姓名欄為admin用戶,則取消對當前行的編輯

????????if (gvr.Cells[1].Text =="admin")

????????????e.Cancel = true;

}

?

6、RowUpdating和RowUpdated事件

RowUpdating事件發生在更新數據源之前,RowUpdated發生在更新數據源之后。

我們可以在記錄更新前利用RowUpdating做一些預處理工作,比如修改密碼時,因為密碼在數據庫中不是明文存儲,進行了hash,所以在更新密碼前,應該生成其hash值,再進行更新操作。RowUpdated則可以檢驗更新是否成功。

Example:

????protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)

????{

????????GridViewRow gvr = GridView1.Rows[GridView1 .EditIndex??];

//尋找輸入密碼的控件

????????TextBox tb1 = (TextBox)gvr.FindControl("tb_password");

//將此控件中的文本hash后,把password存入NewValues這個字典中

????????e.NewValues ["password"] =tb1.Text .GetHashCode().ToString () ;

?

????}

????protected void GridView1_RowUpdated(object sender, GridViewUpdatedEventArgs e)

{

//如無異常,則更新成功

????????if (e.Exception == null)

????????????Message.Text += "更新成功!";

????}

?

7、Keys、OldValues、NewValues集合

Keys字典中一般存放的是數據源中的主鍵字段的key和value的對應值,如果主鍵由多個字段組成,那么Keys為每個鍵字段添加其字段名稱和值。OldValues中存放的是要更新的行的字段名和原始值,每個字段為其中的一項。NewValues中存放的是要更新的行的字段名和修改后的值,每個字段為其中的一項。注意,主鍵字段只存放于keys集合中。

這三個集合中的每一項都是DictionaryEntry類型的對象,我們可以用DictionaryEntry.Key來確定一個項的字段名稱,用DictionaryEntry.Value來確定某項的值。

在上面的例子中,為了把密碼明文加密后再存入數據庫,我們利用了NewValues字段,重新設置key為password的項的值。為了保證安全性,我們在更新數據前對NewValues中的所有值進行html編碼:

Example1:

protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)

{

//遍歷NewValues,取得其中每一對DictionaryEntry對象

???????foreach (DictionaryEntry de in e.NewValues)

?

//de.key就是字段名,如果此處單獨更新某字段的話,也可以直接填寫字段名,//比如 e.NewValues[password]

?

???????e.NewValues[de.Key] = Server.HtmlEncode(de.Value.ToString());

????}

?

Example2:

????protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)

{

//分別利用Keys、OldValues、NewValues取得主鍵名、原始數據和更新后數據

????????Message .Text??= e.Keys["username"] + "的email地址從" + e.OldValues["email"] + "變更為" + e.NewValues["email"];

}

轉載于:https://www.cnblogs.com/tangge/archive/2010/11/13/1876200.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/275808.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/275808.shtml
英文地址,請注明出處:http://en.pswp.cn/news/275808.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

插圖 引用 同一行兩個插圖_將圖標變成插圖的五個簡單步驟

插圖 引用 同一行兩個插圖Every creative person has probably already been in this situation: A project, be it a website, an app — or as far as I am concerned: often a news story would benefit from an appealing side visual. But neither budget nor time makes …

urllib庫parse模塊的使用

官方文檔轉載于:https://www.cnblogs.com/vector-wyw/p/10416010.html

java dateutil 獲取時間戳_java DateUtil工具類時間戳類型轉換詳解

本文實例為大家分享了DateUtil工具類時間戳類型轉換的具體代碼&#xff0c;供大家參考&#xff0c;具體內容如下package com.sinosoft.media.sms.util;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;public class DateUtil {//當前…

fluorinefx C# 版的開源rtmp服務器

fluorinefx C# 版的開源rtmp服務器 - [其它資源] 版權聲明&#xff1a;轉載時請以超鏈接形式標明文章原始出處和作者信息及本聲明http://25swf.blogbus.com/logs/28529745.html fluorinefx支持的 .net 框架集有 1.1 2.0 3.5 以及 mono 1.2.4支持的東東Flex, Flash Remoting (RP…

web登錄界面設計_出色的Web界面設計的7條規則

web登錄界面設計When you work on a website or on the design of web pages, remember that their success is not determined by the beauty of their visual style. In fact, in his article “10 Principles Of Good Website Design”, Vitaly Friedman stated:當您在網站或…

關于為什么我推薦大家看vue代碼的隨想

大家好&#xff0c;我是若川。今天給大家推薦一篇大圣老師在知乎的回答&#xff0c;很快能看完。我也曾經回答過這個問題。若川知乎高贊&#xff1a;有哪些必看的 JS 庫&#xff1f;不要為了讀源碼而讀源碼&#xff0c;但要學會看源碼。自己常用的熟悉的庫的源碼值得讀讀。點擊…

算法 - 最好、最壞、平均復雜度

注&#xff1a;本文僅為筆記。 原文 極客時間 - 數據結構與算法之美 - 04 | 復雜度分析&#xff08;下&#xff09;&#xff1a;淺析最好、最壞、平均、均攤時間復雜度 最好、最壞時間復雜度 略&#xff0c;比較容易分析。 平均時間復雜度 需考慮概率來計算。 概率論中的加權平…

java編譯多個包_javac一次性編譯多個包下的.java文件

標準的javac可以跟一個加一個文件名&#xff0c;該文件里保存了源文件列表&#xff0c;使用下面的命令&#xff1a;javac sourcefilecd xxxdir *.java/s/b > srclist.txtor dir x:/yyy/zzz/*.java/s/b > srclist.txtjavac -cp .;xxx/yyy/zzz.jar;x…

555的傳說

鄭昀 20101118 昨天聽1039電臺才知道&#xff0c;北美電影里常出現的555開頭號碼是行規慣例&#xff0c;因為當年貝爾系統為測試鏈路中所有交換機的基本功能&#xff0c;全部由5組成的號碼&#xff08;555–5555&#xff09;作為特別的測試號碼被保留&#xff0c;時至今日只剩下…

沒想到你是這樣的npm install

大家好&#xff0c;我是若川。今天給大家推薦一篇關于 npm install 的好文。很快能看完。點擊下方卡片關注我、加個星標學習源碼整體架構系列、年度總結、JS基礎系列前言項目中執行npm install發生了什么&#xff0c;眾所周知&#xff0c;執行npm install時會在當前項目目錄的n…

Django——Model

一、 ORM 在 MVC 或者說 MTV 設計模式中&#xff0c;模型&#xff08;M&#xff09;代表對數據庫的操作。那么如何操作數據庫呢&#xff1f; 我們可以在 Python 代碼中嵌入 SQL 語句。 但是問題又來了&#xff0c;Python 怎么連接數據庫呢&#xff1f;可以使用類似 pymysql 這一…

大理石在哪兒_如何創建用戶體驗寫作課程而又不失大理石

大理石在哪兒I’m a UX Writer. It’s a designated human on the software development team who writes words for interfaces. All the words. From the tiniest tooltips to navigation, to buttons, to errors, and so on, ad infinitum. UX writing is less writing and …

理解 JavaScript 閉包

簡介 Closure 所謂“閉包”&#xff0c;指的是一個擁有許多變量和綁定了這些變量的環境的表達式&#xff08;通常是一個函數&#xff09;&#xff0c;因而這些變量也是該表達式的一部分。 閉包是 ECMAScript &#xff08;JavaScript&#xff09;最強大的特性之一&#xff0c;但…

in the java search_elasticsearch which: no java in (/sbin:/bin:/usr/sbin:/usr/bin)

機器&#xff1a;centos7.2javahome&#xff1a;export JAVA_HOME/root/jdk1.8.0_60export PATH$JAVA_HOME/bin:$PATHexport CLASSPATH.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar[rooti-j73a8nn6 ~]# java -versionjava version “1.8.0_60”Java(TM) SE Runtime Envir…

Vuex 源碼還有一些缺陷?

我看了vuex3和vuex4的源碼也輸出了文章&#xff0c;看到這篇時&#xff0c;vuex還有缺陷&#xff1f;看了看確實是好文&#xff0c;不愧是大佬寫的。文章不算長&#xff0c;推薦給大家看看。點擊下方卡片關注我、加個星標學習源碼整體架構系列、年度總結、JS基礎系列眾所周知&a…

三級菜單頁面布局_三級菜單的最快導航布局

三級菜單頁面布局重點 (Top highlight)When users navigate an interface, there’s a need for speed. The faster it is for them to find what they’re looking for, the more time they’ll save on their task.用戶導航界面時&#xff0c;需要提高速度。 他們找到所需內容…

java contains 通配符_java刪除文件支持通配符

packagecom.covics.zfh;importjava.io.File;importjava.io.FilenameFilter;/*** 實現帶*號的刪除文件*authordoudou**/public classTestDeleteFile {public static voidmain(String args[]) {boolean delFile //windows//deleteFileWithSign("E:\\fileDeleteTest\\test\\t…

「線性基」學習小結

向量空間 向量空間亦稱線性空間。 形式化的&#xff0c;我們定義一個向量空間\((P,V,,\cdot)\) 其中 \(P\)是一個域&#xff0c;\(V\)是一個非空的集合&#xff0c;其中的集合稱作向量&#xff0c;同時定義兩種運算分別為向量加法和標量乘法 一個\(P\)上的向量空間\((P,V,,\cdo…

ux體驗網站 英國_定義網站圖像時的UX注意事項

ux體驗網站 英國As the saying goes —俗話說 - “A picture is worth a thousand words.”“一張圖片勝過千言萬語。” When creating content on the web, it’s often recommended to be using high-quality imageries and making sure that the images serve its purpose …

iconfont 支持全新的彩色字體圖標

大家好&#xff0c;我是若川。iconfont我相信大家都用過&#xff0c;而現在支持全新的彩色字體圖標了。這是第二次轉載&#xff0c;上一次的好文是2020 前端技術發展回顧。點擊下方卡片關注我、加個星標學習源碼整體架構系列、年度總結、JS基礎系列一直以來&#xff0c;Web 中想…