博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
GridView的RowDataBound事件 获取当前行的某个数据列
阅读量:5968 次
发布时间:2019-06-19

本文共 1184 字,大约阅读时间需要 3 分钟。

要获取当前行的某个数据列,我在实践中总结有如下几种方法:
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自动为此强类型生成的创建数据行对象的方法。通过此法,实现了类型化数据的广泛应用。数据类型化的好处 很多,显而易见的便是传一个类型数据给方法,取代一大堆参数,另外就是再也不会发生字段名拼写错误的情况。

转载地址:http://kutax.baihongyu.com/

你可能感兴趣的文章
20145209预备作业02
查看>>
精通CSS滤镜(filter)
查看>>
ios 中UIViewController的分类
查看>>
弄清楚高层到底是什么情况!
查看>>
开发中常用正则表达式
查看>>
HDU 4374 One hundred layer(单调队列DP)
查看>>
c和c++中NULL和0的区别
查看>>
OPP Services Log
查看>>
JQuery增删改查
查看>>
android webview 全屏播放H5 (Playing HTML5 video on fullscreen in android webview)
查看>>
python的一些常用函数
查看>>
微信公众号教程(19)微信音乐播放器开发 中
查看>>
浏览器跨域问题
查看>>
部署WEB项目到服务器(二)安装tomcat到linux服务器(Ubuntu)详解
查看>>
SpringBoot之SpringBoot+Mybatis+Mysql+Maven整合
查看>>
SQLServer BI 学习笔记
查看>>
20160504-hibernate入门
查看>>
工作四周年
查看>>
sql定时自动备份(定时作业)
查看>>
Excel 2013 表格自用技巧
查看>>