当前位置:
首页 > temp > 简明python教程 >
-
asp.net后台或前端获取TemplateField绑定的文本
GridView中使用最多的一个是BoundField,还有一个是TemplateField
这两个各有其特点,BoundField的话比较简单,设置好DataField、HeaderText等就可以了。
但是有时候用TemplateField 的话,交互性就更多了。
这两个各有其特点,BoundField的话比较简单,设置好DataField、HeaderText等就可以了。
但是有时候用TemplateField 的话,交互性就更多了。
这次的项目中,对方要我们做二级表头的表格,就用到了TemplateField ,代码格式如下:
```
```
通过在后台控制从数据库中查出数据之后,对应的字段绑定上数据之后,在浏览器上的显示:
其中图片和视频是HyperLink 链接,可以点击后查看图片和视频~
<asp:TemplateField HeaderStyle-Width="250px"> <HeaderTemplate> <table width="100%" align="center"> <tr> <td colspan="3" width="100%" align="center"> 详细信息 </td> </tr> <tr> <td width="70%" align="center"> 描述 </td> <td width="15%" align="center"> 图片(张) </td> <td width="15%" align="center"> 视频(段) </td> </tr> </table> </HeaderTemplate> <ItemTemplate> <table width="100%"> <tr> <td width="70%" align="center"> <asp:Label id="Label1" runat="server" Text=<%# Eval("data1"/asp:Label> </td> <td width="15%" align="center"> <asp:HyperLink id="HyperLink1 Text=<%# Eval("data2"%> ForeColor="#00d3d4" NavigateUrl='' runat="server" title='查看' CssClass="hylink"></asp:HyperLink> </td> <td width="15%" align="center"> <asp:HyperLink id="scanVideo" Text=<%# Eval("data3"%> ForeColor="#00d3d4" NavigateUrl='' runat="server" title='查看' CssClass="hylink"></asp:HyperLink> </td> </tr> </table> </ItemTemplate> <HeaderStyle Width="250px"></HeaderStyle> </asp:TemplateField>
通过在后台控制从数据库中查出数据之后,对应的字段绑定上数据之后,在浏览器上的显示:
其中图片和视频是HyperLink 链接,可以点击后查看图片和视频~
- - 前端获取TemplateField绑定的文本
但是我希望,只有图片和视频的数目是大于0的时候才是蓝绿色,且可以点击,为0的时候就像普通的绑定一样。这里用前端js来获取templateField绑定的值
$(document).ready(function() { var gdview = document.getElementById("GridView1"); var GridView1RowsLength = getTableRowsLength("GridView1"); for (var j = 1; j < GridView1RowsLength; j++) { var HTML = gdview.rows[j].cells[6].children[0];//获取到TemplateField这一列,我这里是cells[6] var photoNum = HTML.rows[0].cells[1].textContent; var vedioNum = HTML.rows[0].cells[2].textContent; if (photoNum == 0) { HTML.rows[0].cells[1].children[0].href = "#"; HTML.rows[0].cells[1].children[0].title = ""; HTML.rows[0].cells[1].children[0].style.color = "rgb(51, 51, 51)"; } if (vedioNum == 0) { HTML.rows[0].cells[2].children[0].href = "#"; HTML.rows[0].cells[2].children[0].title = ""; HTML.rows[0].cells[2].children[0].style.color = "rgb(51, 51, 51)"; } } }); function getTableRowsLength(id) { var mytable = document.getElementById(id); return mytable.rows.length; }
效果:
为0的鼠标放置上去不会有title显示,点击也不会有反应了
- - 后端获取TemplateField绑定的文本
占位置还很丑,所以就想到字数超过固定数目之后,之后的用...表示,但是可以通过鼠标放置在当前单元格上的时候,悬浮显示全部描述文字。这里用后台控制:
首先要说的是,其实一开始,我的描述是直接放在`<td></td>`中的,但是这样后台虽然可以取到文本,但是无法使用ToolTip,也不能对其属性Text赋值,后来用
首先要说的是,其实一开始,我的描述是直接放在`<td></td>`中的,但是这样后台虽然可以取到文本,但是无法使用ToolTip,也不能对其属性Text赋值,后来用
<asp:Label id="Label1" runat="server" Text=<%# Eval("data1"/asp:Label>
,这样可以在前端(就是上面的js代码中)控制,显示我想要的效果,但是是前端强制生成的,因为绑定在gridview上的数据还是很长段的文字,所以页面刚刷新的时候会
看到很长段的描述文字,闪了一下,才会变成想要的“部分描述文字”+...,这样,所以我还是希望在数据绑定的时候就已经处理好这些在网上找了很久,并没有找到方法,
只能自己琢磨了
代码如下:
/// <summary> /// 当Gridview的每行数据绑定的时候触发的事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { if (((System.Data.DataRowView)(e.Row.DataItem)).Row.ItemArray[6].ToString().Trim().Length > 12) //描述的文字长度大于12的时候 { string dis = ((System.Data.DataRowView)(e.Row.DataItem)).Row.ItemArray[6].ToString().Trim(); Label aaa = e.Row.FindControl("Label1") as Label; aaa.ToolTip = dis; aaa.Text = dis.Substring(0, 11) + "..."; } } }
((System.Data.DataRowView)(e.Row.DataItem)).Row.ItemArray[6]这个是怎么得到的呢,就是自己一开始用的是e.Row.Cells[]但是获取不到,后来使用((DataBoundLiteralControl)row.Cells[index].Controls[0]).Text.Trim()也有点小问题,后台调试的时候,获取e.row,找到了整行的数据,在一层一层找到描述的单元格信息,然后直接通过复制表达式得到的。
然后就完成了,其实之前的俩个数字也是完全可以用后端的办法的,一样获取到文本,做判断,HyperLink PhotoNum = e.Row.FindControl("HyperLink1") as HyperLink; 再设置属性就行了。(=.
字数限制之后,鼠标放置--悬浮显示完整文字
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数