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

結果はnullではなく空の文字列だったようです。

于 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 に答える