0

我的主页正在使用 jquery 显示图像幻灯片,所有这些图像都是在运行时从 mysql 检索的。我在分区内创建了 9 个由 jquery 移动的图像,我从代码隐藏中给出图像 url 的值。请看我的下面的代码,如果数据库包含少于 9 个图像,则应隐藏空图像。我该怎么做?

 <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

您不能连接字符串和整数:

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 回答
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 回答
0

两种方法解决。

简单的方法:

您可以创建一个图像控件的静态数组(一个包含 9 个元素的数组),然后在从零到图像数量的循环中 - 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 回答