1

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

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

    <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

这如何适用于上述要求?

提前致谢。

4

3 回答 3

2

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

于 2012-10-06T14:01:51.340 回答
1

这是我设法解决的解决方案:

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

结果似乎是一个空字符串而不是空字符串。

于 2012-10-06T13:55:15.383 回答
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();
    }
}
于 2012-10-06T11:28:53.510 回答