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
>
查看全文
相关阅读:
网络 图片缓存
大流量 网站
20个 css3 html5 设计工具
tomcat6.0 内存设置
销售订单流程图
android 自带 xml解析
常见边框
Expanding Cat5e LAN segments over 100 metres using OUTREACH Ethernet LAN extenders
CPU频率和FSB瓶颈
SmallNetBuilder's Wireless FAQ: The Essentials
原文地址:https://www.cnblogs.com/yank/p/1077281.html
最新文章
图表 工具
eclipse 修改 工程 项目 类型
分布式的唯一id
23套 UI下载
上传文件 流解析request.getInputStream()
cdn 内容分发 资源放在更接近用户的网络边缘
struts2下载
20个 项目托管
示例
fremarker
热门文章
html5 报表
cdn
Eclipse安装git插件 EGit
互联网dba
EHCache 缓存 定位
u盘 数据恢复
spring json
android bitmap 处理
html5 手机页面
getJSON 回调函数不执行
Copyright © 2011-2022 走看看