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

    在页面层,绑定如下:
    <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=<%#%20Eval("F_ContentID")%20%>
    最后改用了最简单的链接方式,才最用解决了难题。
    <a href="DisplayMailContent.aspx?contentID=<%# Eval("F_ContentID") %>"><%# Eval("F_SenderID"%></a>

  • 相关阅读:
    H3C 12508 收集诊断信息
    hzwer收集课件笔记
    hzwer收集课件笔记
    Educational Codeforces Round 85 (Rated for Div. 2)
    Codeforces Round #632 (Div. 2)
    Codeforces Round #588 (Div. 2)
    Educational Codeforces Round 73 (Rated for Div. 2)
    Codeforces Round #631 (Div. 2)
    Codeforces Round #630 (Div. 2)
    复试准备
  • 原文地址:https://www.cnblogs.com/yank/p/1077281.html
Copyright © 2011-2022 走看看