日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

GridView控件RowDataBound事件中获取列字段值的几种途径

發布時間:2023/12/10 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 GridView控件RowDataBound事件中获取列字段值的几种途径 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?前臺:

<asp:TemplateField HeaderText="充值總額|賬號余額"><ItemTemplate><asp:Label ID="lblSurplusMoney" runat="server" Text=""></asp:Label></ItemTemplate></asp:TemplateField>

?

???

/// <summary>/// 行綁定/// </summary>/// <param name="sender">產生事件的事件源</param>/// <param name="e">時間對象</param>protected void gvDataList_RowDataBound(object sender, GridViewRowEventArgs e){string strKeyGName = txtGName.Text.Trim();if (e.Row.RowType == DataControlRowType.DataRow){//實例匯總詳情var strGnameTitle = "商品編碼";var strGnameUrl = GetServerPath() + "/HsCode/HscodeInfoIndex.aspx?IsDlg=1&HSCODE=" +DataBinder.Eval(e.Row.DataItem, "CODE_T_S");var hyGname = e.Row.FindControl("hyCodeTs") as HyperLink;hyGname.Attributes.Add("onclick", string.Format("OpenWindow('{0}','{1}',{2},{3});",strGnameTitle, strGnameUrl, "1000", "600"));}}

?

我做的是點擊當前行獲取該行指定字段的值!?DataBinder.Eval(e.Row.DataItem, "CODE_T_S");?? 要取的列名。??????

?

?

?

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

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

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

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

  ((System.Web.UI.WebControls.Label)(e.Row.FindControl("lblSurplusMoney"))).Text = strSurplusMoney;

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事件中獲取列字段值的幾種途徑 !!!

轉載于:https://www.cnblogs.com/xbding/p/4478600.html

總結

以上是生活随笔為你收集整理的GridView控件RowDataBound事件中获取列字段值的几种途径的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。