在OnRowDataBound或OnItemDataBound事件中获取字段值
不管是在GridView,DataList还是Repeater控件中,其中Repeater控件,没有DataKeyNames或是DataKeyField属性,想获取记录的主键值,只好用Label或是HiddenField绑定主键字段,然后在后台OnItemDataBound获取。
虽然GridView和DataList控件有DataKeyNames和DataKeyField属性,或是某时候程序需求,一些非主键字段需要进一步函数处理而需要获取这些字段。
现Insus.NET教大家几种方法,在OnRowDataBound或是OnItemDataBound事件获取主键值或是字段值。如果是GridView控件或是DataList控件,需要设置属性DataKeyNames和DataKeyField,而Repeater控件,只能使用HiddenField控件了。
先来看看GridView控件:
<asp:GridView ID="GridView1" runat="server" DataKeyNames="ID" OnRowDataBound="GridView1_RowDataBound">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="LabelName" runat="server" Text='<%# Eval("Name") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
去.aspx.cs网页,写GridView1_RowDataBound事件。
当然想在OnRowDataBound获取主键时,不用设置DataKeyNames属性,也可以跟获取其它字段一样获取得到,下面是第二种方法:
第三种方法:
下面是DataList控件演示,
<asp:DataList ID="DataList1" runat="server" DataKeyField="ID" OnItemDataBound="DataList1_ItemDataBound">
<ItemTemplate>
<asp:Label ID="LabelName" runat="server" Text='<%# Eval("Name") %>'></asp:Label>
</ItemTemplate>
</asp:DataList>
第一种:
第二种方法:
第三种方法:
下面是Repeater控件在OnItemDataBound事件中,获取字段值。
<asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="Repeater1_ItemDataBound">
<HeaderTemplate>
<table cellpadding="3" cellspacing="0" style="border: 1px solid #808080; border-collapse: collapse; width: 500px;">
<tr>
<td style="border: 1px solid #808080;">主键
</td>
<td style="border: 1px solid #808080;">Name
</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td style="border: 1px solid #808080;">
<%# Eval("ID") %>
<asp:HiddenField ID="HiddenField1" runat="server" Value='<%# Eval("ID") %>' />
</td>
<td style="border: 1px solid #808080;">
<asp:Label ID="LabelName" runat="server" Text='<%# Eval("Name") %>'></asp:Label>
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
第一种方法:
第二种方法:
第三种方法:
在OnRowDataBound或OnItemDataBound事件中获取字段值的更多相关文章
- GridView控件RowDataBound事件中获取列字段值的几种途径
前台: <asp:TemplateField HeaderText="充值总额|账号余额"> <ItemTemplate> <asp:Label ID ...
- Django如何从Model中获取字段名称——verbose_name
一.背景 CRM项目重新总结一下,重写之前的项目发现有不少知识点已经忘记,所以特此来重新总结一下一便后续能够回忆起 二.代码分析 1. 核心代码 from django.conf.urls impor ...
- 【Java/JDBC】利用ResultSetMetaData从数据库的某表中获取字段信息并存到csv文件
代码下载:https://files.cnblogs.com/files/xiandedanteng/FindNotnullColumns20191102-2.rar 这篇还不够完善,请看更完善的续篇 ...
- EHlib在数据单元中显示字段值为图形。
-[定制网格数据单元] 在数据单元中显示字段值为图形. TDBGridEh allows to show bitmaps from TImageList component depending o ...
- MySQL数据库中tinyint字段值为1,读取出来为true的问题
原文:https://blog.csdn.net/shuyou612/article/details/46788475 MySQL数据库中tinyint字段值为1,读取出来为true的问题 今天在 ...
- GridView控件RowDataBound事件中获取列字段值的几种途径 !!!
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == ...
- GridView控件RowDataBound事件中获取列字段途径
今天不知道怎么回事怎么也找不到gridview列中的控件,关键是其为编辑时隐藏域中的控件,取值就很成问题了,网上搜了很到,找到这个比较经典的东东了,可能大家都知道,但很少对比整理到一起,有多种方法可以 ...
- GridView的RowDataBound事件中获取当前行内容的几种方法
1. Cells[x].Txt. 从列单元格的文本值获取.这种方法简单高率,最为常用,但是功能单纯.此法存在几个缺点: (1)无法获取到设置了隐藏属性的数据列的值,所取到的值为“”(空). ...
- 【特性】select语句中使用字符串链接获取字段值失败
坑1 在一个多行的表中,想把其中的一个字段值拿出来,组成一个字符串供后面使用. 按照以往,自己就如以下这么写了: declare @sql varchar(8000) set @sql='insert ...
随机推荐
- 引用com.sencha.gxt.ui.GXT加载错误解决方案
环境GWT2.7+GXT4.0 <inherits name='com.sencha.gxt.ui.GXT' /> 出现加载错误 Loading inherited module 'com ...
- 蓝桥杯 基础练习 BASIC-14 时间转换
基础练习 时间转换 时间限制:1.0s 内存限制:512.0MB 问题描述 给定一个以秒为单位的时间t,要求用“<H>:<M>:<S>”的格式来表示这个时间 ...
- 高效C#编码优化
1.foreach VS for 语句 Foreach 要比for具有更好的执行效率Foreach的平均花费时间只有for的30%.通过测试结果在for和foreach都可以使用的情况下,我们推荐使用 ...
- Celery-4.1 用户指南: Daemonization (系统守护进程)
Generic init-scripts 查看Celery发布里的 extra/generic-init.d/ 文件夹. 这个文件夹中包含了celery worker 程序的通用bash初始化脚本,可 ...
- redmine2.3环境搭建
1. 安装redmine bitnami-redmine-2.3.0-0-windows-installer.exe安装到C:\BitNami\redmine-2.3.0-0目录下. 其中redmin ...
- Javascript ——Navigator对象
见 <Javascript 高级程序设计 第二版> P172 一.检测插件: 1.获取所有插件名称: 非IE浏览器:根据plugins数组, function getplugins() { ...
- Spring MVC F5刷新问题
转自:https://bbs.csdn.net/topics/390771056 post操作成功后重定向到B,这样浏览器里F5的时候就不会让提交A了
- ansible for devops读书笔记第一章
yum -y install ansible ansible --version mkdir /etc/ansible touch /etc/ansible/hosts [example] www ...
- C语言学习笔记--指针和数组的关系
1.数组的本质 (1)数组是一段连续的内存空间 (2)数组的空间大小:sizeof(array_type)*array_size; (3)数组名可看做指向数组第一个元素的常量指针 (4)数组声明时编译 ...
- 属性操作get.Attribute()