在Panel的FindControl里,我怎么就是找不到动态生成的控件呢
我代码如下:
生成:
if(!IsPostBack)
{
//取得模型编号
string mid=Application["Mid"].ToString();
string cmdString="SELECT mid,tname FROM target WHERE mid=@mid AND tname<>'简历' order by tname";
SqlCommand sqlCmd=new SqlCommand(cmdString,Config.CreateConnection());
sqlCmd.Parameters.Add("@mid",SqlDbType.Char,10);
// sqlCmd.Parameters["@mid"].Value=mid;
// 调试用
sqlCmd.Parameters["@mid"].Value="mod0000000";
sqlCmd.Connection.Open();
SqlDataReader dr=sqlCmd.ExecuteReader();
//动态生成下拉列表

while(dr.Read())
{
Label lblname=new Label();
//设置Label的ID属性
lblname.ID="lbl"+dr["tname"].ToString();
//设置其文本
lblname.Text="<br></br>"+dr["tname"].ToString();
//创建下拉列表并设置其属性
DropDownList ddlPoint=new DropDownList();
ddlPoint.ID="ddl"+dr["tname"].ToString();
//设置分值
for(int i=0;i<=10;i++)
{
ddlPoint.Items.Add(i.ToString());
}
pnlTarget.Controls.Add(lblname);
pnlTarget.Controls.Add(ddlPoint);
}
sqlCmd.Connection.Close();
//使评价按钮无效,并使评价的验证控件无效
btnRe.Enabled=false;
this.RequiredFieldValidator1.Enabled=false; }寻找:
while(drSelect.Read())
{
string ddlID="ddl"+drSelect["tname"].ToString();
DropDownList ddlTemp=new DropDownList();
ddlTemp=(DropDownList)this.pnlTarget.FindControl(ddlID);
string id=ddlTemp.SelectedItem.Text;
int point=Convert.ToInt32(ddlTemp.SelectedItem.Text.ToString());
insertCmd.Parameters["@tname"].Value=drSelect["tname"].ToString();
insertCmd.Parameters["@point"].Value=point;
//执行写入
try
{
insertCmd.ExecuteNonQuery();
Message.Text="打分成功!";
}
catch(SqlException Exp)
{
if(Exp.Number==2627)
{
Message.Text="您已经打分了!";
}
else
{
Message.Text="打分失败!"+Exp;
}
}

}
为什么就是找不到呢

解决方案 »

  1.   

    //取得模型编号 
    string   mid=Application[ "Mid "].ToString(); 
    string   cmdString= "SELECT   mid,tname   FROM   target   WHERE   mid=@mid   AND   tname <> '简历 '   order   by   tname "; 
    SqlCommand   sqlCmd=new   SqlCommand(cmdString,Config.CreateConnection()); 
    sqlCmd.Parameters.Add( "@mid ",SqlDbType.Char,10); 
    // sqlCmd.Parameters[ "@mid "].Value=mid; 
    // 调试用 
    sqlCmd.Parameters[ "@mid "].Value= "mod0000000 "; 
    sqlCmd.Connection.Open(); 
    SqlDataReader   dr=sqlCmd.ExecuteReader(); 
    //动态生成下拉列表 while(dr.Read()) 

    Label   lblname=new   Label(); 
    //设置Label的ID属性 
    lblname.ID= "lbl "+dr[ "tname "].ToString(); 
    //设置其文本 
    lblname.Text= " <br> </br> "+dr[ "tname "].ToString(); 
    //创建下拉列表并设置其属性 
    DropDownList   ddlPoint=new   DropDownList(); 
    ddlPoint.ID= "ddl "+dr[ "tname "].ToString(); 
    //设置分值 
    for(int   i=0;i <=10;i++) 

    ddlPoint.Items.Add(i.ToString()); 

    pnlTarget.Controls.Add(lblname); 
    pnlTarget.Controls.Add(ddlPoint); 

    sqlCmd.Connection.Close(); 
    //使评价按钮无效,并使评价的验证控件无效 
    btnRe.Enabled=false; 
    this.RequiredFieldValidator1.Enabled=false; 放到Ispostback外面