在DataList中放入一个HyperLink控件,visible属性设置为false.在后台判断如果条件允许,就将它的visible为true.
调试两种情况都进去了。但是页面中HyperLink确是全部都显示。

解决方案 »

  1.   

    无图无真相 初步判断没加runat=“server”
      

  2.   

    <asp:HyperLink ID="hlRoomType"  runat="server" Visible="false">[<a href="../HotelType/TypeUp.aspx?storeId=<%# Eval("Id")%>">房间类型</a>]&nbsp;</asp:HyperLink>

    <asp:HyperLink ID="hlRoomType"  runat="server" Visible="false">[<a href="../HotelType/TypeUp.aspx?storeId=<%# Eval("Id")%>">房间类型</a>]&nbsp;</asp:HyperLink>本来想加粗的,让大家好看些,没效果!,呵呵!
      

  3.   

    后台代码:
        protected void dlStore_ItemDataBound(object sender, DataListItemEventArgs e)
        {
            HyperLink hl = e.Item.FindControl("hlRoomType") as HyperLink;
            if (null != hl)
            {
                foreach (Store s in pt.Result)
                {
                    if (s.StoreType.TypeName.ToString() == "宾馆")
                        hl.Visible = true;
                    else
                        hl.Visible = false;
                }
            }
        }
    我是想在后台获取HyperLink ,通过判断是否为“宾馆”时,来让它显示。
      

  4.   

    是啊, foreach (Store s in pt.Result)
                {
                    if (s.StoreType.TypeName.ToString() == "宾馆")
                        hl.Visible = true;
                    else
                        hl.Visible = false;
                }这里面if  else 都进来了啊。
    就是在页面没效果。
    不知道是否我这个思路出了问题。
    有没有其他的方法实现。
    请赐教!
      

  5.   

    这样的编程有点“笨”。既然你设计代码中明确写上了visible="false",然后所谓的后台事件处理中的代码又去翻垃圾箱,把它修改,何必呢?!设计时直接写visible的真实表达式最好:<asp:HyperLink ID="hlRoomType"  runat="server" Visible='<%# 判断是否可见((string)Eval("StoreType.TypeName")) %>'>
      

  6.   

    呵呵,是笨了点。但是我这样试,报错,不能这样写。
    是不是我写错了。
    Visible="<%# Eval("StoreType.TypeName").ToString()=="宾馆"?true:false %>"
      

  7.   

    呵呵,好了,写错了
    我把Visible='<%#Eval("StoreType.TypeName").ToString()=="宾馆"?true:false %>'
    写为Visible="<%# Eval("StoreType.TypeName").ToString()=="宾馆"?true:false %>"