[转帖]访问Formview模板内控件

在访问Formview模板内控件时遇到两个问题。

一是调用语句过早而访问不到Formview模板内控件,二是究竟用什么方法或属性来访问。

比如说其中有一个ID为UserNameTextBox的TextBox,我们要把当前已登陆用户的用户名传给它怎么做呢?

注意:formview在Page_Load的时候是不会呈现外观的,也就不会有TextBox了,所以在Page_Load里写程序无论怎么写也找不到formview1控件模板里的子控件UserNameTextBox。也就是说要等formview控件的外观呈现后才可以找里面的子控件。

这里要用到OnItemCreated事件(FormView_ItemCreated)。

(1)在FormView的属性代码里添加事件: OnItemCreated="FormView_ItemCreated"

      (或者在属性面板-事件里添加)

(2)在当前页CS文件里添加处理程序:

protected void FormView_ItemCreated(object sender, EventArgs e)
     {
         ((TextBox)FormView1.Row.FindControl("UserNameTextBox")).Text = HttpContext.Current.User.Identity.Name;
       
     }

//这里FormView的ID为FormView1,模板里有TextBox子控件ID为UserNameTextBox,

//HttpContext.Current.User.Identity.Name是取得当前登陆用户的用户名

//((TextBox)FormView1.Row.FindControl("UserNameTextBox")).Text 这句是关键,就是这样访问模板里子控件的。

来自:http://hi.baidu.com/txlongping/blog/item/0dd11e1fbe1ececaa6866911.html

posted on 2007-07-03 18:18  网际浪人  阅读(1885)  评论(3编辑  收藏  举报