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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/419963.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html复选框值改变后事件,javascript – 从onclick/onchange事件获取HTML值的复选框

简短的回答&#xff1a;使用点击事件&#xff0c;它不会触发&#xff0c;直到更新的值&#xff0c;并触发时&#xff0c;你希望它&#xff1a;Checkboxfunction handleClick(cb) {display("Clicked, new value " cb.checked);}更长的答案&#xff1a;更改事件处理程…

BZOJ-2194 快速傅立叶之二

FFT模版题。 观察题目&#xff0c;我们可以发现&#xff0c;只要把序列b倒过来&#xff0c;再联想一下乘法运算。。。 我们会发现&#xff0c;将序列a和序列b当作100进制数&#xff0c;做一次乘法&#xff0c;然后从低到高每一位便是答案了&#xff08;乘完无需进位&#xff09…

Python:IndentationError: unexpected indent

python遇到错误&#xff1a;IndentationError: unexpected indent解决办法&#xff1a;python因为是根据格式缩进来识别逻辑块的&#xff0c;所以对格式要求极为严格&#xff0c;出现上述错误&#xff0c;一般都是tab和空格没有对齐。检查了一下&#xff0c;的确编辑器上多出来…

Mvc 学习笔记(一)

1. MVC 表示 模型-视图-控制器。MVC是一种用于开发应用程序的模式&#xff0c;具备良好的架构&#xff0c;可测试和易于维护。基于MVC应用程序中包含&#xff1a; Models&#xff1a;表示应用程序的数据&#xff0c;并使用验证逻辑强制执行业务规则的数据的类。 Views&#xff…

html锚点反向联动,小程序菜单左右联动

最近做小程序的时候&#xff0c;产品提了一个需求&#xff1a;1.左侧的菜单栏和右侧的菜单可分别滚动&#xff0c;滚动左侧不影响右侧&#xff0c;滚动右侧左侧随之联动高亮显示所在的菜单分类。2.点击下方左侧导航菜单栏&#xff0c;高亮显示被点击的菜单分类&#xff0c;右侧…

第6/24周 聚集索引

上个星期我向你介绍了堆表&#xff08;heap tables&#xff09;。我们说过&#xff0c;在SQL Server表可以是堆表&#xff08;Heap Table&#xff09;或者聚集表&#xff08;Clustered Table&#xff09;——一个在它上面有聚集索引&#xff08;Clustered Index&#xff09;定义…

index.html乱码问题,用apache打开文件index显示乱码为什么

用apache打开文件index显示乱码怎么回事这不是 apache 的问题。是 php 本身编码&#xff0c;或者 数据库编码问题。---------------------------给你看一篇别人的问题------------------------让人烦恼的 PHP UTF8 乱码解决方案088月2009一般来说&#xff0c;如果将 各个文件类…

广西2021普通高考成绩查询,2021广西高考成绩什么时候出

2021广西高考成绩什么时候出2021-04-22 10:39:21文/叶丹2021广西高考成绩公布时间&#xff1a;预计6月23日。预计6月23日对考生开放高考成绩查询通道&#xff0c;并公布录取最低控制分数线。届时考生可查询高考成绩&#xff0c;请考生密切关注广西招生考试院官网、官方微博、官…

vmware安装中标麒麟高级服务器操作系统 V7.0

vmware安装中标麒麟高级服务器操作系统 V7.0 1、下载中标麒麟高级服务器操作系统 V7.0镜像2、安装中标麒麟高级服务器操作系统 V7.02.1、新建虚拟机2.2、安装虚拟机 3、配置中标麒麟高级服务器操作系统 V7.03.1、登录系统3.2、配置静态IP地址 和 dns3.3、查看磁盘分区3.4、查看…

HDFS Safemode问题

处于safemode的集群是无法接收不论什么写操作的&#xff0c;包含创建文件夹、删除文件、改动文件、上传文件等等。 关于safemode&#xff0c;在http://www.iteblog.com/archives/977中讲的比較具体了。hdfs集群在启动和关闭的时候通常会有一段时间处于safemode&#xff0c;假设…

2021年衢州高考的成绩查询,2021年衢州高考状元是谁分数多少分,历年衢州高考状元名单...

2020年衢州一年一度的高考考试已经结束&#xff0c;今年衢州高考状元是谁呢&#xff0c;衢州高考状元出自哪个高中学校&#xff0c;文理科分数是多少分&#xff0c;一起来了解。一、2020年衢州高考状元名单资料2020年衢州高考状元名单和学校相关信息&#xff0c;截至目前发文时…

java笔试练习题

选择题(共50题&#xff0c;每题1.5分&#xff0c;共75分。多选题选不全或选错都不得分。)1&#xff0e; 以下属于面向对象的特征的是&#xff08;C,D&#xff09;。&#xff08;两项&#xff09;A) 重载B) 重写C) 封装D) 继承2&#xff0e; 以下代码运行输出是&#xff08;C&am…

html块左右排列,html – 如何均匀地排列多个内嵌块元素?

我最近读了一个非常聪明的技巧来完成你所要求的工作。简而言之&#xff0c;你只需要使用text-align&#xff1a;justify;在容器元素上实现这一点&#xff0c;结合一个额外的不可见块。这是因为内联块元素被视为文本内容的一部分&#xff0c;每个元素实际上是单个单词。使用对齐…

org.hibernate.MappingException: Could not determine type for: java.util.List, at table: user, for...

异常详情&#xff1a; Caused by: org.hibernate.MappingException: Could not determine type for: java.util.List, at table: ss_user, for columns: [org.hibernate.mapping.Column(roles)] at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:336) ~[hib…

计算机主机机箱面板指示灯,电脑主机指示灯不亮了是什么原因

公告&#xff1a; 为响应国家净网行动&#xff0c;部分内容已经删除&#xff0c;感谢读者理解。话题&#xff1a;电脑主机指示灯不亮了是什么原因&#xff1f;回答&#xff1a;是指示灯坏了。或者是主机主板出了问题。参考回答&#xff1a;绿灯不亮是电源问题红灯不亮是硬盘或者…

html中水印影响文字复制,HTML中文字水印的清除方法_HTML教程

HTML中文字水印的清除方法我们在浏览某些网站的时候&#xff0c;看到不错的网页可能就想把上面的内容给复制下来&#xff0c;但是有的网站就是为了防止别人复制&#xff0c;而在每段文字的结尾处增加了干扰码——与背景颜色相同的文字。清除文字水印的方法比较多&#xff0c;主…

影响中国历史的十篇政治美文

转载于:https://www.cnblogs.com/yymn/p/4488728.html