创建与asp.net上可用数据相对应的动态图像

时间:2012-11-24 13:21:56

标签: asp.net c#-4.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张图片都遵循此方法......

3 个答案:

答案 0 :(得分: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();

答案 1 :(得分:2)

您收到错误是因为您直接访问了不存在的行。您需要计算DT中的行数。

numberOfRows = dt.Rows.Count 

之后

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

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

答案 2 :(得分:0)

两种解决方法。

简单方法:

您可以创建一个Image控件的静态数组(一个包含9个元素的数组),然后在从0到数量的图像-1的循环中创建。然后,您取消引用该数组以更改URL。应该是这样的(示例代码,非编译,可能有错误或拼写错误)

申报:

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

在循环中:

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

或者艰难的方式:

动态添加图像控件到页面。