HTML中的.Net如果reader对象不为null则返回true,否则返回false

时间:2012-10-06 11:20:20

标签: c# asp.net .net c#-4.0 c#-3.0

我正在使用DataList来显示数据库中的一些数据并填充html端的字段。我现在需要根据数据库字段是否有数据来更改面板的可见性。

如果相关数据字段包含内容,我需要能够显示面板,如果没有,则需要隐藏它。例如:

    <asp:Panel ID="pnlNew" runat="server" Style="margin:0; padding:0; width:42px; height:18px; bottom:5px; right:10px; float:right; position:relative; background:url(../_imgVideoBadge.png) no-repeat;" Visible='<%# Eval("cheese") != null %>' ToolTip="available"></asp:Panel>

显然,这在可见属性方面不起作用。但希望它能让我知道我想要实现的目标。任何帮助将不胜感激。

我之前看过以下的例子:

    a ?? b:c

如何将其应用于上述要求?

提前致谢。

3 个答案:

答案 0 :(得分:2)

Visible='<%# Information.IsDBNull(Eval("cheese")) %>'应该返回一个布尔值。

答案 1 :(得分:1)

这是我设法解决的问题:

    (Eval("cheese").ToString().Trim() == String.Empty) ? false : true

因为看起来结果是空字符串而不是空字符。

答案 2 :(得分:0)

protected void Page_Load(object sender, EventArgs e)
   {
      if (!Page.IsPostBack)          
        SqlConnection MyConnection;
        SqlCommand MyCommand;
        SqlDataReader MyReader;
        MyConnection = new SqlConnection();
        MyConnection.ConnectionString = ConfigurationManager.ConnectionStrings["AppConnectionString1"].ConnectionString;

        MyCommand = new SqlCommand();
        MyCommand.CommandText = "SELECT TOP 10 * From PRODUCTS";
        MyCommand.CommandType = CommandType.Text;
        MyCommand.Connection = MyConnection;

        MyCommand.Connection.Open();
        MyReader = MyCommand.ExecuteReader(CommandBehavior.CloseConnection);
        if (MyReader != null)
        {
            datalist1.DataSource = MyReader;
            datalist1.DataBind();
            pnlNew.Visible = true;
        }
        else
        {
            pnlNew.Visible = false;
        }
        MyCommand.Dispose();
        MyConnection.Dispose();
    }
}