大家帮我看看我这个 循环是不是有“内伤”阿???
要达到的效果,在GridView中有模板列有DropDownList,DropDownList根据同一个单元格中的HiddenField值绑定另一个表中的数据。
现在的问题是:在GridView中第一行DropDownList绑定不了数据。而第二行显示的是本应第一行显示的数据~~
代码如下:
//活动内容由代号转换为名称;
public SqlDataReader ddliActiveId_Bind()
{
SqlConnection myconnection = new SqlConnection(sqlconn);
SqlCommand mycommand = new SqlCommand( "DdliActiveIdBind ", myconnection);
mycommand.CommandType = CommandType.StoredProcedure;
mycommand.Parameters.Add(new SqlParameter( "@iActiveId ", SqlDbType.Int, 4));
int iDCIDTemp = 0;
for (int i=0;i <GridView1 .Rows .Count;i++)
{
GridViewRow row=GridView1 .Rows [i];
iDCIDTemp=Convert.ToInt32 (((HiddenField )row .FindControl( "HiddenField1 ")).Value.ToString ()) ;
}
mycommand.Parameters[ "@iActiveId "].Value = iDCIDTemp;
myconnection.Open();
SqlDataReader dr = mycommand.ExecuteReader();
return dr;
myconnection.Close();
}
------解决方案--------------------PS: myconnection.Close();
应该写在return dr;之前,貌似...
你这个方法是根据HiddenField的值去数据库取DDL的数据?
for循环应该写在调用这个方法的代码那吧...
貌似iDCIDTemp会永远只能取到最后一个GridView1.Rows的值