我正在使用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
如何将其应用于上述要求?
提前致谢。
答案 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();
}
}