当前位置: 首页 > 编程语言 > C#

如何从usercontrol页面后面的代码中找到ListView的ItemTemplate中的控件?分享

时间:2023-04-11 01:49:06 C#

怎么从usercontrol页后面的代码中找到ListView的ItemTemplate中的控件?实际上,我正在使用ASP.NET和C#开发Web模板。我在用户控件页面和ItemTemplate中有一个列表视图,我有一个如下所示的PlaceHolder:我想从后面的代码访问这个PlaceHolder,我使用如下不同的方法,但我无法访问它。PlaceHolderph_Lv_EditModule=(PlaceHolder)lv_Uc_Module.FindControl("ph_Lv_EditModule");或PlaceHolderph_Lv_EditModule=(PlaceHolder)this.lv_Uc_Module.FindControl("ph_Lv_EditModule");你能帮我找到如何在我的用户控件页面后面的代码中找到这个控件吗?谢谢您的考虑。ListView通常包含多个项目,因此Placeholder的NamingContainer(由FindControl搜索)既不是UserControl也不是ListView本身。它是一个ListViewItem对象。所以找引用的地方就是ListView的ItemDataBound事件。protectedvoidListView_ItemDataBound(objectsender,ListViewItemEventArgse){if(e.Item.ItemType==ListViewItemType.DataItem){varph_Lv_EditModule=(PlaceHolder)e.Item.FindControl("ph_Lv_EditModule");如果您需要其他地方的参考,您必须迭代ListView的项目,然后在ListViewItem上使用FindControl。顺便说一句,这与其他DataBound控件(如GridView或Repeater)的行为相同。正如TimSchmelter提到的,你也可以通过如下方式迭代ListView来访问你的ListView所有分享的内容,如果对你有用,需要了解更多C#学习教程,希望大家多多关注—privatevoidHideMyEditModule(){foreach(variteminlv_Uc_Module.Items){PlaceHolderholder=item.FindControl("ph_Lv_EditModule")asPlaceHolder;if(holder!=null)holder.Visible=false;}}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: