日期:2014-05-18  浏览次数:20399 次

大家帮我看看我这个 循环是不是有“内伤”阿???
要达到的效果,在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的值