Container.DataItem中Container到底代表的是什么?

最近见网友在讨论Container.DataItem,说Container到底代表的是什么?这里说说个人见解:

1、Container英文就是容器的意思,并且在我们程序中也确实就是!那么这个Container在我们的显示数据用的(GridView,Repeater,DataList等等)这些里面又是一个什么现象来?个人理解其实,Container就是代表的行,Container.DataItem代表的就是数据行,或者行中的数据项,这里很有意思哈,微软为什么这么做?其实我想的是,行中,不一定都是从数据源中读出的(这里的数据源,代表的就是数据库中的表中的数据)也有可能有html标签,或者服务器端控件,那么和显然,微软为了区分这一点就用了Container.DataItem(翻译成:这一行中的数据行或者这一行中的数据项),当我们的数据源头在发生变化时,那么,这里的Container.DataItem.GetType()的类型也在发生变化,这里我从不间断的调试的得来,或者通过,Container.DataItemIndex,数据行索引得来

2、那么Contaier.代表的是一行那Repeater来说,也就是一个RepeaterItem,那么,Container.Parent代表的是什么来?就是Repeater本身,那么Container.Parent.Parent代表的就是父容器的行!

所以就对下面做出了解释!

子级Repeater中绑定父级Repeater的某个字段:

 方法1:<%# DataBinder.Eval((Container.NamingContainer.NamingContainer as RepeaterItem).DataItem, "PropertyName"%>

方法2:<%# DataBinder.Eval((Container.Parent.Parent as RepeaterItem).DataItem, "PropertyName"%>

 二层嵌套:<%# DataBinder.Eval((Container.Parent.Parent as RepeaterItem).DataItem, "PropertyName"%>

三层嵌套:<%# DataBinder.Eval((Container.Parent.Parent.Parent.Parent as RepeaterItem).DataItem, "PropertyName"%>

四层嵌套:<%# DataBinder.Eval((Container.Parent.Parent.Parent.Parent.Parent.Parent as RepeaterItem).DataItem, "PropertyName"%>

2.在子级Repeater中引用父级Repeater某个控件的值: <%# (Container.Parent.Parent.FindControl("txtUserID"as TextBox).Text%>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值