asp.net调用动态控件的问题....郁闷啊....

nuptjinlu 2008-01-29 12:06:59
public partial class add : System.Web.UI.Page
{
SqlConnection Conn = new SqlConnection("Data Source=JINLU;Initial Catalog=Socut;Integrated Security=SSPI ");
SqlCommand cmd;
protected void Page_Load(object sender, EventArgs e)
{

}
protected void DropDownList2_SelectedIndexChanged(object sender, EventArgs e)//这里动态生成上传图片的上传控件,数目有页面的下拉框指定
{
if (Int32.Parse(DropDownList2.Text) != 0)
{
for (int i = 0; i < Int32.Parse(DropDownList2.Text); i++)
{
FileUpload upLoad = new FileUpload();//动态生成了文件上传控件
upLoad.ID = "FileUpload" + i.ToString(); //动态编号
upLoad.Visible = true;
Panel1.Controls.Add(upLoad);//添加到panel
//---------添加图片...//
}
}
}
-----------------------之后我想在点击事件中执行数据上传操作!因为前面动态生成了文件上传控件

protected void btnAdd_Click(object sender, EventArgs e)
{
string strID = System.Guid.NewGuid().ToString();//GUID编号ID
if (Int32.Parse(DropDownList2.Text) > 0)
{
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "Data Source=JINLU;Database=Socut;Integrated Security=SSPI";
string sql = "Insert into image(id) values('" + strID + "')";
SqlCommand scmd = new SqlCommand(sql, conn);
conn.Open();
scmd.ExecuteNonQuery();
conn.Close();

for (int i = 0; i < Int32.Parse(DropDownList2.Text); i++)
{
HttpPostedFile upPhoto = ((FileUpload)UpdatePanel1.FindControl("FileUpload" + i.ToString())).PostedFile;//这里我引用刚才进行动态编号的ID值,想找到这个控件,结果没有找到。
int upPhotoLength = upPhoto.ContentLength;
byte[] PhotoArray = new Byte[upPhotoLength];
Stream PhotoStream = upPhoto.InputStream;
PhotoStream.Read(PhotoArray, 0, upPhotoLength);
//连接数据库
string strSql = " UPDATE image SET n_image" + i.ToString() + " =@FImage WHERE n_id='" + strID + "'";
scmd = new SqlCommand(strSql, conn);
scmd.Parameters.Add("@FImage", SqlDbType.Image);
scmd.Parameters["@FImage"].Value = PhotoArray;
conn.Open();
scmd.ExecuteNonQuery();
conn.Close();
Label1.Text = "正在添加第" + (i + 1).ToString() + "图片";
}
}
}
}


我的问题是怎么样才能调用到我动态生成的控件,因为那样我才能对其做一些操作啊。。findconctrol怎么会提示对象没有被引用。。。郁闷死了。。大虾给点解决方法,哪怕不用这钟方法
...全文
115 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
saucer 2008-01-31
  • 打赏
  • 举报
回复
你需要在PostBack之后在代码里记住在Page_Load或更前面重新生成你动态生成的控件,参考我的博客
http://blog.joycode.com/saucer/archive/2004/10/26/36466.aspx
nuptjinlu 2008-01-30
  • 打赏
  • 举报
回复
已经这样做了啊!!
别样苍茫 2008-01-29
  • 打赏
  • 举报
回复
看下你Panel是不是放在某个控件里面了 先取到Panel的位置 然后用findconctrol的索引得到你添加的控件

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧