我的主页使用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张图片都遵循此方法......
答案 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());
或者艰难的方式:
动态添加图像控件到页面。