我想实现当“sname”等于Session["name"]时候 显示按钮 否则隐藏,但是我这么写 却报错:Eval()、XPath() 和 Bind() 这类数据绑定方法只能在数据绑定控件的上下文中使用。                    <asp:ListView ID="ListView1" runat="server" OnItemDataBound="ListView1_ItemDataBound">
                        <ItemTemplate>
                                    <% if (Session["name"].ToString() == Eval("sname").ToString())
                                       {
                                    %>
                                    <asp:LinkButton Visible="False" Style="margin-left: 10px;" ID="lnkDelete"     runat="server" OnClick="Delete">删除</asp:LinkButton>
                                    <% 
                                        }
                                    %>                        </ItemTemplate>
                    </asp:ListView>

解决方案 »

  1.   

    本帖最后由 net_lover 于 2012-07-19 13:11:40 编辑
      

  2.   

    你最好在绑定事件里面去处理,。
    另外Session也不是都有值的
      

  3.   

    绑定很简单啊protected void ListView1_ItemDataBound(object sender, ListViewItemEventArgs e)
    {
      if (e.Item.ItemType == ListViewItemType.DataItem)
      {
        LinkButton lnkDelete = e.Item.FindControl("lnkDelete") as LinkButton;
        if (lnkDelete != null)
        {
          if (Session["name"] != null && Session["name"].ToString() == DataBinder.Eval(e.Item.DataItem, "sname").ToString())
          {
            lnkDelete.Visible = false;
          }
          else
          {
            lnkDelete.Visible = true;
          }        
        }
      }
    }