小迪的Blog
学习ing...(注明:该Blog中的任何信息都非原创,只是作为个人的阅读笔记)
posts - 144,comments - 52,trackbacks - 0

动态创建的组件的ID设定要注意两点:
1、ID号不能重复
2、要便于在程序中使用。因为要在程序中使用动态创建的组件,要通过该组件的ID来查找。

//创建时:
Label lb = new Label();
lb.ID="lb"+i.ToString();

//使用时:
String lbID="lb"+i.ToString();
Label lb=(Label)myPlaceHolder.FindControl(lbID);
lb.Text="… …"


注意:
需要特别注意的是,使用动态创建的WEB组件有一个前提,就是页面不能被刷新。如果页面被刷新,而且你又没

有在页面刷新后重新创建该组件。在程序中使用动态创建的WEB组件,在程序运行时就会得到一个错误。该错误

的产生是因为动态创建的WEB组件在页面被刷新后就不存在了。

private void submitButton_Click(object sender, System.EventArgs e)
{
 //… …
 //将用户填写的信息写入数组       
 for(int i=1;i<=int.Parse(ViewState["totalnum"].ToString());i++)
 {
       //… …
      string lbID="lb"+i.ToString();
  string strID=Request.Form[lbID].ToString();
       IDstr[i]=strID;
 }
 //… …
}
其中lbID为要使用的WEB组件的ID号。当页面刷新后,虽然动态创建的WEB组件不存在了,但是Request对象已经

将WEB组件的信息保存下来了,所以仍然可以获得信息。

如果你想在页面刷新后,仍然显示动态创建的WEB组件,那么你需要做的是在 Page_Load(object sender,

System.EventArgs e) 中再次调用创建WEB组件的函数,并用 Request.Form[ID] 为相应的组件赋修改过的值。


请记住,创建WEB组件的函数要放在 if(IsPostBack){  } 中。

 


posted on 2005-04-03 18:36  小迪  阅读(...)  评论(...编辑  收藏