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事件中获取列字段值的几种途径相关推荐
- GridView控件RowDataBound事件中获取列字段的几种方法(转)
GridView是ASP.NET中功能强大的数据显示控件,它的RowDataBound事件为我们提供了方便的控制行.列数据的途径. 软件开发网 www.mscto.com 要获取当前行的某个数据列,有 ...
- GridView控件RowDataBound事件中获取列字段的几种途径
GridView是ASP.NET中功能强大的数据显示控件,它的RowDataBound事件为我们提供了方便的控制行.列数据的途径. 要获取当前行的某个数据列,我在实践中总结有如下几种方法: 1. Ce ...
- android中ListView控件onItemClick事件中获取listView传递的数据
http://blog.csdn.net/aben_2005/article/details/6592205 本文转载自:android中ListView控件&&onItemClick ...
- JAVA中获取文件MD5值的四种方法
JAVA中获取文件MD5值的四种方法其实都很类似,因为核心都是通过JAVA自带的MessageDigest类来实现.获取文件MD5值主要分为三个步骤,第一步获取文件的byte信息,第二步通过Messa ...
- oracle中获取列的值,oracle - Oracle-SQL从具有特定列和值的所有表中获取数据 - SO中文参考 - www.soinside.com...
假设我们有一个表ACCOUNT,其中的CUST_ID列如下:SQL> SELECT OWNER, A.TABLE_NAME, COLUMN_NAME FROM 2 ALL_TAB_COLS A ...
- ajax拿table里的th值,Jquery Ajax 异步设置Table中某列的值
可根据table中某列中的ID去改变某列的值! 只是参考,实际应用中不能这样做的,如果有很多行,频繁访问服务器,服务器是顶不住的! JS: $(document).ready(function () ...
- ASP.NETLinkButton的Click事件中获取CommandArgument的值
/// <summary> /// LinkButton的onClick事件 /// </summary> /// <param name=&qu ...
- Select的OnChange()事件中获取选中的值
onchange代码是这么写的: function bao() { var obj=document.getElementById("dajwid"); var index=obj ...
- ItemDataBound 事件中获取行的值
protected void RepService_ItemDataBound(object sender, RepeaterItemEventArgs e) { ...
最新文章
- java 父类 超类_Java超类-java.lang.object
- php扩展 waf,基于PHP扩展的WAF实现
- [渝粤教育] 四川农业大学 理论力学 参考 资料
- linux 下/etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc 的区别
- Qt模仿游戏拖装备(换装备)
- Oracle体系结构四(学习笔记)
- ajax连接前后端原理,前后端数据交互方法和原理
- (转)Arcgis for Js之GeometryService实现测量距离和面积
- Multiload-ng
- 【转】使用红雪越狱iPhone 4.3.3教程
- C语言标准库函数大全
- C语言中的万能头文件
- 网站CDN图片加速访问
- 面试时应该如何进行自我介绍呢
- C++ 在函数中定义函数
- Gstreamer说明
- CSP:给大家介绍下我爸爸 — Performance
- Android应用内跳转到google play或者其他应用市场详情页下载或者评价
- 电话呼叫转移的设置方法大全
- 服务器加固安全指导书
热门文章
- [react] 在react中无状态组件有什么运用场景
- 深入react技术栈(7):组件化实例:Tab栏组件
- [html] DOM节点的种类有哪些?
- [html] 使用svg画一个微信的logo
- [vue] 说说你对MVC、MVP、MVVM模式的理解
- [css] 请说说你对vh、vw的理解以及它们的运用场景是什么?
- 前端学习(2573):vuex核心概念和底层原理
- 前端学习(2351):text组件的使用
- 前端学习(1126):递归求数学题
- 前端学习(221):字体属性