0

私のホームページは、jquery を使用して画像のスライドショーを表示しています。これらの画像はすべて、実行時に mysql から取得しています。部門内に jquery で移動している 9 つの画像を作成し、codebehind から画像の URL の値を指定しています。以下のコードでは、データベースに含まれる画像が 9 つ未満の場合、null 画像を非表示にする必要があります。どうすればよいですか?

 <a href="#">

  DataTable dt = Db.ids("home_table");
Image1.ImageUrl = "~/Handler1.ashx?id=" + Convert.ToInt16(dt.Rows[0]["id"].ToString());


Image2.ImageUrl = "~/Handler1.ashx?id=" + Convert.ToInt16(dt.Rows[1]["id"].ToString());

この方法は、9枚の画像すべてに適用されます...

4

3 に答える 3

2

存在しない行に直接アクセスするため、エラーが発生します。DT の行数を数える必要があります。

numberOfRows = dt.Rows.Count 

それとその後

if ( numberOfRows >= 2 )
{
   Image2.ImageUrl = "~/Handler1.ashx?id=" + ...    }

if ( numberOfRows >= 3 )
{
   Image3.ImageUrl = "~/Handler1.ashx?id=" + ....    }

于 2012-11-24T13:30:26.243 に答える
2

文字列と整数を連結することはできません:

Image1.ImageUrl = "~/Handler1.ashx?id=" + Convert.ToInt16(dt.Rows[0]["id"]);

変換ToString()して解決:

Image1.ImageUrl = "~/Handler1.ashx?id=" + Convert.ToInt16(dt.Rows[0]["id"]).ToString();
于 2012-11-24T13:23:22.787 に答える
0

解決方法は2つ。

簡単な方法:

画像コントロールの静的配列 (9 つの要素を持つ配列) を作成してから、0 から画像数 -1 までのループで作成できます。次に、その配列を参照解除して、URL を変更します。次のようになります (サンプル コード、コンパイルされていないため、バグやタイプミスがある可能性があります)

宣言:

Image imageArray[] = { Image1, Image2 ... , Image9};

ループの中:

imageArray[index].ImageUrl = "~/Handler1.ashx?id=" + Convert.ToInt16(dt.Rows[index]["id"].ToString());

または難しい方法:

ページに画像コントロールを動的に追加します。

于 2012-11-24T13:34:25.527 に答える