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

本文介绍了在ASP.NET中如何正确地使用Formview控件访问内部的子控件,特别是TextBox,并提供了具体的实现步骤和代码示例。文章指出,在Page_Load事件中无法直接访问Formview内的子控件,需要通过OnItemCreated事件来实现。

在访问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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值