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
>
查看全文
相关阅读:
Excel中的Vlookup函数用法
C# WinForm 在窗口菜单上显示已打开窗体的标题及其窗体的排列
C#使用Windows注册表编辑
World Creater
AtService.exe 占用CPU资源较高的解决办法
几段SQL Server语句和存储过程(转载)
代码转换工具
ReSharper 4.5 Feature Map
DXperienceXaf9.2.6 Personal Computer SN
RegexBuddy v3.1.1 破解版
原文地址:https://www.cnblogs.com/yank/p/1077281.html
最新文章
VS2022安装报错"无法安装microsoft.netcore.hostpath"
获取客户机的当前使用的IP、CPU、硬盘序列等信息生成机器码
NSMutableArray的一些小秘密
useful code
VO BO PO 介绍
imageView的一些小秘密
scrollViewDidEndDecelerating
viewWillAppear: 方法和 viewDidAppear 方法对比
java的牛x
ios 项目 在真机上 测试
热门文章
绘制一个右对齐的字符 ooooooooooo
ios 项目版本控制
(中文排版CSS心得)固定宽度汉字截断 —— 使用textoverflow
Maintain Scroll Position on Postback in ASP.NET 2.0 (转)
熊猫烧香病毒制作者年仅25岁 称是为显示技术高
怎么做程序员的soho(转自csdn)
感谢球,感谢铁道部,感谢电信,我终于定到回武汉的票了
人生应该谨慎乐观,方能成大气。
算法大全
MS Sql語句行轉列
Copyright © 2011-2022 走看看