zoukankan
html css js c++ java
GridView中的自定义绑定
案例一:
在写邮件系统中,遇到一个小难题,邮件有几种状态,已读和未读,数据库存储的是整型数据,可是到了页面要根据其整型数据显示不同的图片信息。
解决方案:
方案一:
尽管这个方法比较简单,但也费了好多功夫。
<
asp:Image ID
=
"
Image3
"
runat
=
"
server
"
ImageUrl
=
'
<%# Eval("F_IsRead")%>
'
/>
这行代码,便是最初的绑定。显然这样不行。
方案二:
<
asp:Image ID
=
"
Image3
"
runat
=
"
server
"
ImageUrl
=
'
<%# Eval("F_IsRead").ToString()=="1"?"../Images/msg_read.gif":"../images/msg_unread.gif"%>
'
/>
这样总是出错,尽管设计逻辑没有错误,可能是.NET的GridView不支持这样的变通。
原来又是引号的问题,这样也可以,成功啦!
<
asp:Image ID
=
"
Image3
"
runat
=
"
server
"
ImageUrl
=
'
<%# Eval("F_IsRead").ToString()=="1"?"../Images/msg_read.gif":"../Images/msg_unread.gif"%>
'
/>
因为”1“是在Receiver实体类中定义的常量,不妨来试试。
<
asp:Image ID
=
"
Image3
"
...
ImageUrl
=
'
<%# Eval("F_IsRead").ToString()==Receiver.AlreadRead.ToString()?"../Images/msg_read.gif":"../Images/msg_unread.gif"%>
'
/>
提示错误:"当前上下文中不存在字符Receiver"
方案三:
最后,使用函数绑定,将数据的判断和绑定放在类的公共函数里面,如下:
Code
1
/**/
///
<summary>
2
///
是否已读,设定相应图片
3
///
</summary>
4
///
<param name="isRead"></param>
5
///
<returns></returns>
6
public
string
getUrl(
string
nObject)
7
{
8
string
imageUrl
=
string
.Empty;
9
int
read
=
Bmc.CLUtility.getConvertIntValue(nObject);
10
if
(read
==
Receiver.AlreadRead)
11
{
12
imageUrl
=
"
../Images/msg_read.gif
"
;
13
}
14
else
15
{
16
imageUrl
=
"
../Images/msg_unread.gif
"
;
17
}
18
return
imageUrl;
19
}
在页面层,绑定如下:
<
asp:Image ID
=
"
Image3
"
runat
=
"
server
"
ImageUrl
=
"
<%# getUrl(Eval("F_IsRead").ToString())%>
"
/>
错误一
:但是这样测试还是通不过,提示:"服务器标记的格式不正确",费了好大力气,最后根据经验将引号做了改变
<
asp:Image ID
=
"
Image3
"
runat
=
"
server
"
ImageUrl
=
"
<%# getUrl(Eval('F_IsRead').ToString())%>
"
/>
错误二:
又出了新问题,提示"字符文本中的字符太多"。服啦,本来简单一个问题这么费劲。最后修改如下:
<
asp:Image ID
=
"
Image3
"
runat
=
"
server
"
ImageUrl
=
'
<%# getUrl(Eval("F_IsRead").ToString())%>
'
/>
终于成功啦!希望大家不要和我犯同样的错误,浪费太长的时间。
案例二:在GridView中插入一个连接列,导向另一个页面,而且还要携带参数。
开始设计如下。利用HyperLink绑定,如下
<
asp:HyperLink ID
=
"
HyperLink1
"
runat
=
"
server
"
NavigateUrl
=
'
DisplayMailContent.aspx?contentID=<%# Eval("F_ContentID") %>
'
Text
=
'
<%# Bind("F_SenderID") %>
'
/>
返回的结果,绑定的F_ContentID并没有获得值,【至今还没有得到很好的答案】
http://localhost:2593/WebSites/Pages/Mail/DisplayMailContent.aspx?contentID=
<%
#%20
Eval
(
"
F_ContentID
"
)%
20
%>
最后改用了最简单的链接方式,才最用解决了难题。
<
a href
=
"
DisplayMailContent.aspx?contentID=<%# Eval(
"
F_ContentID
"
) %>
"
><%
# Eval(
"
F_SenderID
"
)
%></
a
>
查看全文
相关阅读:
java的instanceof简单使用
PHP中return,exit,die的区别
C#调用Dll文件中方法的简单应用
C#的托管和非托管的简单理解
对象造型(引用类型转换)
面向对象3大特性的简单理解
css3自定义滚动条背景透明
console.time方法与console.timeEnd方法
IE8 input X 去掉文本框的叉叉和密码输入框的眼睛图标
JavaSript模块规范
原文地址:https://www.cnblogs.com/yank/p/1077281.html
最新文章
go编译go-gtk,出现invalid flag in pkg-config --libs: -Wl,-luuid提示
goLand工程结构管理
Go版GTK:环境搭建(windows)
关于go get安装git golang项目时报错的处理办法
转 国内的go get问题的解决
go get 无反应、访问github.com速度慢、没反应问题的解决方案
Android+OpenCV 摄像头实时识别模板图像并跟踪
Java反编译器安装及各版本介绍
MySQL 复制+快照恢复误删除操作实验测试
Android SDK Manager无法更新问题解决
热门文章
密钥,密钥对,公钥,pfx,jks和https的几个概念
QTP下载链接
Android动态加载技术初探
(二)Java对象与内存控制
uva340 数字匹配检索问题
JSLink to render the list to show people detail info with picture
学习设计模式的导读(设计模式的学前教育)
设计模式的3个常用原则
php的session存放数组
java中的this和super(构造函数)
Copyright © 2011-2022 走看看