访问formview模板内控件

[转帖]访问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 这句是关键,就是这样访问模板里子控件的。

 

//另外一个例子
protected void addXiangxi(object sender,EventArgs e)
    {
        showMessage();
        ((TextBox)FormView1.FindControl("UserTextBox")).Text = Profile.UserName;
        Response.Write("<script>alert('订单已经提交')</script>");
    }

posted @ 2010-08-09 11:46  midisong  阅读(222)  评论(0编辑  收藏  举报