1. 程式人生 > >GridView控制元件RowDataBound事件中獲取列欄位的幾種途徑

GridView控制元件RowDataBound事件中獲取列欄位的幾種途徑

GridView是ASP.NET中功能強大的資料顯示控制元件,它的RowDataBound事件為我們提供了方便的控制行、列資料的途徑。

要獲取當前行的某個資料列,我在實踐中總結有如下幾種方法:

1. Cells[x].Txt。
    從列單元格的文字值獲取。這種方法簡單高率,最為常用,但是功能單純。此法存在幾個缺點:
    (1)無法獲取到設定了隱藏屬性的資料列的值,所取到的值為“”(空)。
    (2)只能獲取在HTML中定義過的資料列,無法查詢資料來源中的當前資料行的所有欄位列。一般情況下,通過HTML設定GridView的欄位列的數量往往小於資料來源的實際欄位數量,這是因為從業務邏輯的角度看,並不是所有的欄位都是要顯示在頁面上的。當需要使用沒有被顯示的欄位時,此法就不能直接滿足需求了。

2. e.Row
.Cells[x].FindControl("YourcontrolName")。
    這是在單元格內查詢某個伺服器控制元件,從而獲得其資料值。這種方式可以操作單元格內的伺服器控制元件。此法一般用於處理模板列中的資料或控制元件。

3. (DataRowView)e.Row.DataItem).Row.ItemArray[x].ToString()。
    此法的核心是e.Row.DataItem,它是GridView的行資料集,為Object型別,將其轉化為DataRowView型別後,可以獲得更多的操作方法。此資料集表示資料來源當前行的全部欄位列,ItemArray[x]是當前行全部欄位列的陣列物件,可以通過索引x獲得任意欄位值。此法的強悍之處是可以對資料來源的全部欄位查詢。

4. DataBinder.Eval(e.Row.DataItem, "YourDataFieldName").ToString()。
    此法仍然
基於e.Row.DataItem,其特點是更快捷的獲得資料來源的任意欄位值,因為使用了DataBinder.Eval(),需要注意的是不要寫錯欄位名稱。

5. 將e.Row.DataItem轉化為自定義型別,實現資料型別化。
    例如:
    DSRequestTracking.TB_RequestTrackingRow rtrow=(DSRequestTracking.TB_RequestTrackingRow)((DataRowView)e.Row.DataItem).Row;
    RequestStatusDropDownList1.SelectedValue = rtrow.StatusID.ToString();
    其中DSRequestTracking
是通過DSRequestTracking.xsd檔案在工程中自定義的強型別DataSet, TB_RequestTrackingRow是VS自動為此強型別生成的建立資料行物件的方法。通過此法,實現了型別化資料的廣泛應用。資料型別化的好處很多,顯而易見的便是傳一個型別資料給方法,取代一大堆引數,另外就是再也不會發生欄位名拼寫錯誤的情況。

綜述,以上方法各有千秋,恰當擇而用之,一定能滿足開發過程中的不同需求。

相關推薦

GridView控制元件RowDataBound事件獲取值的途徑 !!!

protectedvoid GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) {

GridView控制元件RowDataBound事件獲取途徑

GridView是ASP.NET中功能強大的資料顯示控制元件,它的RowDataBound事件為我們提供了方便的控制行、列資料的途徑。要獲取當前行的某個資料列,我在實踐中總結有如下幾種方法:1. Cells[x].Txt。    從列單元格的文字值獲取。這種方法簡單高率,最為

GridView控制元件RowDataBound事件獲取方法

GridView是ASP.NET中功能強大的資料顯示控制元件,它的RowDataBound事件為我們提供了方便的控制行、列資料的途徑。 軟體開發網 www.mscto.com 要獲取當前行的某個資料列,有如下幾種方法: 1. Cells[x].Txt。    從列單元格的文字值獲取。這種方法簡單高率,最為常用

GridView控制元件RowCreated事件的操作——滑鼠動作

說明:這裡所謂的滑鼠動作指的是,當滑鼠經過某一行的時候,該行的顏色發生變化。 protected void GridView1_RowCreated(object sender,GridViewRowEventArgs e) { if(e.Row.RowType==Data

express 獲取參數的形式

配置 code ram 模式 支持 nbsp 前後端分離 json 處理 1、從URL中獲取查詢參數下 如果URL地址中使用?形式傳遞參數,可以直接使用res.query 來獲取到查詢的參數 2、從URL地址中獲取路徑參數 如果URL地址中,使用路徑傳遞參數,路徑類似於/i

ABAP 在選擇螢幕獲取螢幕建立搜尋幫助

常用的螢幕邏輯流有PBO和PAI,還有不常用的POV和POH,POV就是 PROCESS ON VALUE-REQUEST.    FIELD FIELD_NAME MODULE F4_MODULE.             "當用戶按下查詢幫助按鍵時(或按下F4)被觸發

android獲取日期時間的方式

日期時間的獲取方式如下所示: 1、使用SimpleDateFormat和Date類獲取日期時間 private String _GetYear(){ SimpleDateFormat sdf

bootstrapTable行內動態編輯行資料

今天開發者遇到了一個需求:在一個table資料中,點選某行的某一個列資料就行修改該行該欄位的屬性值(另一篇博文有優化方法)。 前言:在網上搜索了一番,使用x-editable元件去實現這個功能,在下載了一些js檔案後,一番搗鼓搞不定(如需要下面js留下地址送你),後來使

Java獲取檔案路徑的方式(轉)

Java中獲取檔案路徑的幾種方式關於絕對路徑和相對路徑:絕對路徑就是你的主頁上的檔案或目錄在硬碟上真正的路徑,(URL和物理路徑)例如:C:xyz est.txt 代表了test.txt檔案的絕對路徑。http://www.sun.com/index.htm也代表了一個URL

如何從SQL資料庫獲取某個的型別和長度

1.select column_name,data_type,character_maximum_lengthfrom information_schema.columnswhere table_name='TableName' and column_name='ColNam

java獲取檔案路徑的方式

關於絕對路徑和相對路徑: 絕對路徑就是你的主頁上的檔案或目錄在硬碟上真正的路徑,(URL和物理路徑)例如:C:xyz est.txt 代表了test.txt檔案的絕對路徑。http://www.sun.com/index.htm也代表了一個URL絕對路徑。相對路徑:相對與某

Android去除標題方式

1.在清單檔案中對應的Activity去除標題欄 android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" 2.在對應A

控制元件巢狀的QT滑鼠事件處理機制

想實現在層層佈局的控制元件中,對最外層的QLabel上的滑鼠事件實現tracking,即觸發mouseMoveEvent的時候,不需要一直按著 前提:自定義控制元件,繼承QLabel重寫滑鼠事件相應的方法 可參考:https://wiki.qt.io/Clickable_QLabel

VS程式設計,WPF,後臺更改 telerik:RadGridView 控制元件寬度的一方法

有時為了顯示的美觀,需要將GridView控制元件中每一列,或者是某一列的寬度進行後臺動態的修改。 這裡提供了一種方法。 例如:此GridView含有6列,使得每一列的寬度平均分配。   1、

Android監聽Edittext控制元件於鍵盤按下確認事件OnEditorActionListener

背景 Edittext作為一個常見控制元件,很多時候都有監聽鍵盤確認就執行指定邏輯的需求 實現 這個很簡單嘛,Edittext自帶有鍵盤按下事件監聽,就是OnEditorActionListener了,用就對了 問題 使用中發現,的確可以監聽鍵盤確認事

uiautomator相同控制元件名該如何獲取想要的控制元件,instance(0)區分佈局一樣的控制元件

大家在使用uiautomator測試開發中肯定遇到一樣佈局、連控制元件ID都一樣的情況,我們該如何去獲取?舉例:以下如圖的所有介面開關(圖片可能載入不出來,大家請自行想象下),所有控制元件顯示名稱都是一樣的,就index有區別,假如我們要開關NFC開關,我們肉眼可以去判斷,但

在asp.net使gridview控制元件內資料居中顯示

再前臺中新增一段<RowStyle HorizontalAlign="Center" /> 即可,或者將gridview控制元件的RowStyle.HorizontalAlign屬性設定為true即可 以上效果會使得控制元件中所有內容都為居中顯示

JSbutton控制元件click事件無法響應的問題

                再點選登入按鈕時無法響應JS事件,後來發現button控制元件的id值和onclick中的方法名相

關於GridView控制元件設定大小的問題

    <com.wust.myview.MyGridView         android:id="@+id/my_gridview"         android:layout_widt

c#Gridview控制元件寫判斷語句

前段時間跟著老師做了一個.net小專案其中一個頁面涉及了用GridView控制元件 繫結資料,要求是從不同的資料表中查出資料,繫結到GridView中,我就想著在前臺頁面寫判斷語句,查了好久,終於弄明白了,這是我前臺的一部分程式碼。       <table widt