大家帮忙看一下,不知道问题处在哪里??
我得想法很简单,就是在页面实现对于对象的排序,数据是从数据库中读出,并在排序后写回数据库中的,用了几个控件,listbox,左右两个,还有一些imagebutton,现在还想加一点的是,想要在左边待排序的listbox其中的一个对象被选中以后,点击一个imagebutton,可以实现显示该对象的详细信息,但是,我得代码在实现这个功能的时候,会出现浏览器进度栏非常的缓慢,像是陷入了死循环,可是自己看不出问题在那里。
代码如下:
private void ImageButton2_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
int i = 0;
// Count 属性之值会随着 Remove 方法被调用而减少
while (i <= ListBoxLeft.Items.Count - 1)
{
// 如果索引值为 i 的选项被选取
if (ListBoxLeft.Items[i].Selected)
{
int productId = Int32.Parse(ListBoxLeft.Items[i].Value);
//打开数据库,读取相关的数据,productId是数据库中相关表的主键ProductsDB是我写的访问数据库
ProductsDB myProducts = new ProductsDB();
SqlDataReader dr = myProducts.GetProductDetails(productId);
dr.Read();
//数据显示部分,前台的是DetailsImage是个asp:imgbutton控件,其他是几个span控件, DetailsImage.Src="ProductImg/"+(string)dr["ProductImg"];
DetailsTitle.Text="<b>Product Details: </b>";
DetailsCode.InnerText ="Product Code" + (string)dr["ProductCode"];
DetailsName.Text="<b>Product Name: </b>"+(string)dr["ProductName"] +"<br>";
DetailsDescription.Text="<b>Product Description: </b>"+ FormatTitle((string)dr["Description"])+"<br>";
DetailsDocument.Text="<b>Product Document: </b>" +(string)dr["DocUrl"] +"<br>";
DetailsImage.Visible = true;
dr.Close();
}
else
i += 1;
}
}
上述循环就是找到左面的ListBoxLeft.Items中的那个被选中,可以肯定,能够找到那个被选中的项,只是后来就出现了问题,不知道改怎么办??
大家帮忙看看,谢谢!!