获取控件的所有子控件的双床,按类型 [英] Getting a lits of all child controls of a control, by type
问题描述
我尝试使创建与那些字符串类型的DetalsView的所有子控件的名称列表的方法。
我得到的最接近的是:
的foreach(在dv.Controls控制C)
{
如果(c是标签)
{
controlsToCheck.Add(c.ID);
}
} 的foreach(在controlsToCheck字符串s)
{
标签LBL =(标签)dv.FindControl(S);
如果(lbl.Text ==)
{
lbl.Text =无;
lbl.CssClass =黑体;
}
}
然而,这一切都在第一的foreach循环一次,然后退出(即dv.Controls只返回一个项目)。如果我使用的FindControl,我可以得到的物品,但它意味着我必须做的每一个项目。
任何toughts?
谢谢!
编辑:这里是我的DetailsView控件(我削减了一些东西出来,所以它适合页面上,即只有更多的控件):
< ASP:DetailsView控件DefaultMode =只读FieldHeaderStyle-的CssClass =dwHeader的CssClass =marginLeftRightBottom10px
AutoGenerateDeleteButton =真AutoGenerateEditButton属性=真正的网格线=无
ID =dvIndividualItem=服务器AutoGenerateRows =FALSE的DataSourceID =sqldsSingleItem
OnDataBound =dvIndividualItem_DataBound>
LT&;&领域GT;
< ASP:的TemplateField>
<&HeaderTemplate中GT;
< H1>
物品名称:< / H1>
&所述p为H.;
该项目的名称< / P>
< / HeaderTemplate中>
<&ItemTemplate中GT;
< ASP:标签=服务器ID =lblItemName文本='<%#绑定(ITEMNAME)%>'>< / ASP:标签>
< / ItemTemplate中>
<&InsertTemplate则GT;
< ASP:文本框=服务器ID =tbItemName>< / ASP:文本框>
< / InsertTemplate则>
< / ASP:的TemplateField>
< ASP:的TemplateField>
<&HeaderTemplate中GT;
< H1>
项目描述:LT; / H1>
&所述p为H.;
该项目的描述&下; / P>
< / HeaderTemplate中>
<&ItemTemplate中GT;
< ASP:标签=服务器ID =lblItemDescription文本='<%#绑定(itemDescription)%>'>< / ASP:标签>
< / ItemTemplate中>
<&InsertTemplate则GT;
< ASP:文本框=服务器ID =tbItemDescription>< / ASP:文本框>
< / InsertTemplate则>
< / ASP:的TemplateField>
< ASP:的TemplateField>
<&HeaderTemplate中GT;
< H1>
项目图像:LT; / H1>
&所述p为H.;
该项目的形象< / P>
< / HeaderTemplate中>
<&ItemTemplate中GT;
< ASP:图像=服务器ID =imgItemWIDTH =40像素HEIGHT =40像素/>
< / ItemTemplate中>
<&InsertTemplate则GT;
< ASP:文本框只读=真=服务器ID =tbItemImage>< / ASP:文本框>
< / InsertTemplate则>
< / ASP:的TemplateField>
< ASP:的TemplateField>
<&HeaderTemplate中GT;
< H1>
产品型号:LT; / H1>
&所述p为H.;
指定项目的类型< / P>
< / HeaderTemplate中>
<&ItemTemplate中GT;
< ASP:标签ID =lblItemType文本='<%#的eval(ITEMTYPE)%>' =服务器/>
< / ItemTemplate中>
<% - <&InsertTemplate则GT;
< ASP:DropDownList中的AutoPostBack =真OnSelectedIndexChanged =ddlItemTypes_SelectedIndexChanged
DataTextField =项目类型DataValueField =TYPEID的DataSourceID =sqldsTier1Category
ID =ddlItemTypes=服务器>
< / ASP:DropDownList的>
< ASP:SqlDataSource的ConnectionString的=<%$的ConnectionStrings:myDbConnection%>中ID =sqldsTier1Category
=服务器的SelectCommand =dbo.getItemCategoriesSelectCommandType =StoredProcedure的>
< / ASP:SqlDataSource的>
< / InsertTemplate则> - %GT;
< / ASP:的TemplateField>
< ASP:的TemplateField>
<&HeaderTemplate中GT;
< H1>
物品子类:其中; / H1>
&所述p为H.;
指定的分项目类型< / P>。
< / HeaderTemplate中>
<&ItemTemplate中GT;
< ASP:标签ID =lblSubItemType文本='<%#的eval(itemSubType)%>' =服务器/>
< / ItemTemplate中>
<% - <&InsertTemplate则GT;
< ASP:DropDownList的OnDataBound =ddlItemSubTypes_OnDataBound的AutoPostBack =真DataTextField =itemSubType
DataValueField =subTypeId的DataSourceID =sqldsTier2CategoryID =ddlItemSubTypes
=服务器>
< / ASP:DropDownList的>
< ASP:SqlDataSource的ConnectionString的=<%$的ConnectionStrings:myDbConnection%>中ID =sqldsTier2Category
=服务器的SelectCommand =dbo.getItemSubCategoriesSelectCommandType =StoredProcedure的>
< SelectParameters>
< ASP:ControlParameter控件ID =$ dwNewItem ddlItemTypesNAME =typeid的属性名=的SelectedValue
的DbType =的Int16/>
< / SelectParameters>
< / ASP:SqlDataSource的>
< / InsertTemplate则> - %GT;
< / ASP:的TemplateField>
< ASP:的TemplateField>
<&HeaderTemplate中GT;
< H1>
项SubSubType:或其可/ H1>
&所述p为H.;
指定分包项目类型< / P>。
&所述p为H.;
&所述;我方式>不总是适用&下; / I GT;&下; / P>
< / HeaderTemplate中>
<&ItemTemplate中GT;
< ASP:标签ID =lblSubSubItemType文本='<%#的eval(itemSubSubType)%>' =服务器/>
< / ItemTemplate中>
<% - <&InsertTemplate则GT;
< ASP:DropDownList的DataTextField =itemSubSubTypeDataValueField =subSubTypeId的DataSourceID =sqldsTier3Category
ID =ddlItemSubSubTypes=服务器>
< / ASP:DropDownList的>
< ASP:SqlDataSource的ConnectionString的=<%$的ConnectionStrings:myDbConnection%>中ID =sqldsTier3Category
=服务器的SelectCommand =dbo.getItemSubSubCategoriesSelectCommandType =StoredProcedure的>
< SelectParameters>
< ASP:ControlParameter控件ID =$ dwNewItem ddlItemSubTypesNAME =subTypeId属性名=的SelectedValue
的DbType =的Int16/>
< / SelectParameters>
< / ASP:SqlDataSource的>
< / InsertTemplate则> - %GT;
< / ASP:的TemplateField>
< ASP:的TemplateField>
<&HeaderTemplate中GT;
< H1>
需要剑扫平类<?/ H1>
&所述p为H.;
指定是否该项目只能由剑扫平使用< / P>
< / HeaderTemplate中>
<&ItemTemplate中GT;
< ASP:复选框ID =cbReqSwordSwinger文本='<%#绑定(requiresSwordSwinger)%>' =服务器/>
< / ItemTemplate中>
<% - <&InsertTemplate则GT;
< ASP:复选框=服务器ID =cbReqSwordSwinder/>
< / InsertTemplate则> - %GT;
< / ASP:的TemplateField>
< ASP:的TemplateField>
<&HeaderTemplate中GT;
< H1>
需要捕鼠类<?/ H1>
&所述p为H.;
指定是否该项目只能由捕鼠人使用< / P>
< / HeaderTemplate中>
<&ItemTemplate中GT;
< ASP:复选框ID =cbReqRatCatcher文本='<%#绑定(requiresRatCatcher)%>' =服务器/>
< / ItemTemplate中>
<&InsertTemplate则GT;
< ASP:复选框=服务器ID =cbReqRatCatcher/>
< / InsertTemplate则>
< / ASP:的TemplateField>
< ASP:的TemplateField>
<&HeaderTemplate中GT;
< H1>
需要法术Mumbler类<?/ H1>
&所述p为H.;
指定是否项目只能由拼写Mumbler用于与所述; / P>
< / HeaderTemplate中>
<&ItemTemplate中GT;
< ASP:复选框ID =cbReqSpellMumbler文本='<%#绑定(requiresSpellMumbler)%>' =服务器/>
< / ItemTemplate中>
<&InsertTemplate则GT;
< ASP:复选框=服务器ID =cbReqSpellMumbler/>
< / InsertTemplate则>
< / ASP:的TemplateField>
< ASP:的TemplateField HeaderStyle-的CssClass =colorBlue dwHeader>
<&HeaderTemplate中GT;
< H1>
强度永久添加:< / H1>
&所述p为H.;
指定强度的项目永久添加到您的性格度< / P>
&所述p为H.;
< I>只有当项目设置为输入消耗品&LT用; I&GT /;< / P>
< / HeaderTemplate中>
<&ItemTemplate中GT;
< ASP:标签ID =lblPermanentStrength文本='<%#绑定(permanentStrength)%>' =服务器/>
< / ItemTemplate中>
<&InsertTemplate则GT;
< ASP:文本框启用=假=服务器ID =tbItemPermanentStr>< / ASP:文本框>
< / InsertTemplate则>
< / ASP:的TemplateField>
< ASP:的TemplateField HeaderStyle-的CssClass =colorBlue dwHeader>
<&HeaderTemplate中GT;
< H1>
敏捷永久添加:< / H1>
&所述p为H.;
指定敏捷的项目永久添加到您的性格度< / P>
&所述p为H.;
< I>只有当项目设置为输入消耗品&LT用; I&GT /;< / P>
< / HeaderTemplate中>
<&ItemTemplate中GT;
< ASP:标签ID =lblPermanentAgility文本='<%#绑定(permanentAgility)%>' =服务器/>
< / ItemTemplate中>
<&InsertTemplate则GT;
< ASP:文本框启用=假=服务器ID =tbItemPermanentAgl>< / ASP:文本框>
< / InsertTemplate则>
< / ASP:的TemplateField>
< ASP:的TemplateField HeaderStyle-的CssClass =colorBlue dwHeader>
<&HeaderTemplate中GT;
< H1>
神奇的力量永久添加:< / H1>
&所述p为H.;
指定神奇力量的物品永久性地增加你的性格和LT量; / P>
&所述p为H.;
< I>只有当项目设置为输入消耗品&LT用; I&GT /;< / P>
< / HeaderTemplate中>
<&ItemTemplate中GT;
< ASP:标签ID =lblPermanentMagicalPower文本='<%#绑定(permanentMagicalPower)%>'
=服务器/>
< / ItemTemplate中>
<&InsertTemplate则GT;
< ASP:文本框启用=假=服务器ID =tbItemPermanentMP>< / ASP:文本框>
< / InsertTemplate则>
< / ASP:的TemplateField>
< ASP:的TemplateField HeaderStyle-的CssClass =colorBlue dwHeader>
<&HeaderTemplate中GT;
< H1>
健康加分恢复:LT; / H1>
&所述p为H.;
指定的健康加分的项目和恢复LT量; / P>
&所述p为H.;
< I>只有当项目设置为输入消耗品&LT用; I&GT /;< / P>
< / HeaderTemplate中>
<&ItemTemplate中GT;
< ASP:标签ID =lblH prestored文本='<%#绑定(restoresHealthPoints)%>' =服务器/>
< / ItemTemplate中>
<&InsertTemplate则GT;
< ASP:文本框启用=假=服务器ID =tbItemRestoresHp>< / ASP:文本框>
< / InsertTemplate则>
< / ASP:的TemplateField>
< ASP:的TemplateField HeaderStyle-的CssClass =colorBlue dwHeader>
<&HeaderTemplate中GT;
< H1>
点法力值恢复:LT; / H1>
&所述p为H.;
指定点法力值的项目恢复&LT量; / P>
&所述p为H.;
< I>只有当项目设置为输入消耗品&LT用; I&GT /;< / P>
< / HeaderTemplate中>
<&ItemTemplate中GT;
< ASP:标签ID =lblManaRestored文本='<%#绑定(restoresMana)%>' =服务器/>
< / ItemTemplate中>
<&InsertTemplate则GT;
< ASP:文本框启用=假=服务器ID =tbItemRestoresMana>< / ASP:文本框>
< / InsertTemplate则>
< / ASP:的TemplateField>
< ASP:的TemplateField HeaderStyle-的CssClass =colorBlue dwHeader>
<&HeaderTemplate中GT;
< H1>
健康积分永久添加:< / H1>
&所述p为H.;
指定的健康加分项目永久添加到您的性格度< / P>
&所述p为H.;
< I>只有当项目设置为输入消耗品&LT用; I&GT /;< / P>
< / HeaderTemplate中>
<&ItemTemplate中GT;
< ASP:标签ID =lblPermanentHP文本='<%#绑定(permanentHealth)%>' =服务器/>
< / ItemTemplate中>
<&InsertTemplate则GT;
< ASP:文本框启用=假=服务器ID =tbItemPermanentHP>< / ASP:文本框>
< / InsertTemplate则>
< / ASP:的TemplateField>
< /场>
< / ASP:DetailsView控件>
试试这个
公共静态的IEnumerable<控制> GetAllControls(控制父)
{
的foreach(在parent.Controls控制控制)
{
产量返回控制;
的foreach(在GetAllControls控制后裔(控制))
{
产生回报后裔;
}
}
}
和电话
列表<控制> ControlsToCheck = GetAllControls(DV).OfType&所述;标签>()了ToList();
im trying to make a method that creates a List with the name of all the child controls of a DetalsView that are of type string.
The closest i got was:
foreach (Control c in dv.Controls)
{
if (c is Label)
{
controlsToCheck.Add(c.ID);
}
}
foreach (string s in controlsToCheck)
{
Label lbl = (Label)dv.FindControl(s);
if (lbl.Text == "")
{
lbl.Text = "None";
lbl.CssClass = "bold";
}
}
However, all this does is iterate once in the first foreach, and then exit (ie. dv.Controls only returns one item). If i use FindControl, i can get to the items, but it means i have to do it for each item.
Any toughts?
Thanks!
Edit: here is my DetailsView (i cut some things out, which where just more controls so it fits on the page):
<asp:DetailsView DefaultMode="ReadOnly" FieldHeaderStyle-CssClass="dwHeader" CssClass="marginLeftRightBottom10px"
AutoGenerateDeleteButton="true" AutoGenerateEditButton="true" GridLines="None"
ID="dvIndividualItem" runat="server" AutoGenerateRows="False" DataSourceID="sqldsSingleItem"
OnDataBound="dvIndividualItem_DataBound">
<Fields>
<asp:TemplateField>
<HeaderTemplate>
<h1>
Item Name:</h1>
<p>
The name of the item.</p>
</HeaderTemplate>
<ItemTemplate>
<asp:Label runat="server" ID="lblItemName" Text='<%# Bind("itemName") %>'></asp:Label>
</ItemTemplate>
<InsertItemTemplate>
<asp:TextBox runat="server" ID="tbItemName"></asp:TextBox>
</InsertItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<HeaderTemplate>
<h1>
Item Description:</h1>
<p>
The description of the item.</p>
</HeaderTemplate>
<ItemTemplate>
<asp:Label runat="server" ID="lblItemDescription" Text='<%# Bind("itemDescription") %>'></asp:Label>
</ItemTemplate>
<InsertItemTemplate>
<asp:TextBox runat="server" ID="tbItemDescription"></asp:TextBox>
</InsertItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<HeaderTemplate>
<h1>
Item Image:</h1>
<p>
The image of the item.</p>
</HeaderTemplate>
<ItemTemplate>
<asp:Image runat="server" ID="imgItem" Width="40px" Height="40px" />
</ItemTemplate>
<InsertItemTemplate>
<asp:TextBox ReadOnly="true" runat="server" ID="tbItemImage"></asp:TextBox>
</InsertItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<HeaderTemplate>
<h1>
Item Type:</h1>
<p>
Specifies the item type.</p>
</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="lblItemType" Text='<%# Eval("itemType") %>' runat="server" />
</ItemTemplate>
<%-- <InsertItemTemplate>
<asp:DropDownList AutoPostBack="true" OnSelectedIndexChanged="ddlItemTypes_SelectedIndexChanged"
DataTextField="itemType" DataValueField="typeId" DataSourceID="sqldsTier1Category"
ID="ddlItemTypes" runat="server">
</asp:DropDownList>
<asp:SqlDataSource ConnectionString="<%$ ConnectionStrings:myDbConnection%>" ID="sqldsTier1Category"
runat="server" SelectCommand="dbo.getItemCategories" SelectCommandType="StoredProcedure">
</asp:SqlDataSource>
</InsertItemTemplate>--%>
</asp:TemplateField>
<asp:TemplateField>
<HeaderTemplate>
<h1>
Item SubType:</h1>
<p>
Specifies the sub-item type.</p>
</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="lblSubItemType" Text='<%# Eval("itemSubType") %>' runat="server" />
</ItemTemplate>
<%-- <InsertItemTemplate>
<asp:DropDownList OnDataBound="ddlItemSubTypes_OnDataBound" AutoPostBack="true" DataTextField="itemSubType"
DataValueField="subTypeId" DataSourceID="sqldsTier2Category" ID="ddlItemSubTypes"
runat="server">
</asp:DropDownList>
<asp:SqlDataSource ConnectionString="<%$ ConnectionStrings:myDbConnection%>" ID="sqldsTier2Category"
runat="server" SelectCommand="dbo.getItemSubCategories" SelectCommandType="StoredProcedure">
<SelectParameters>
<asp:ControlParameter ControlID="dwNewItem$ddlItemTypes" Name="typeId" PropertyName="SelectedValue"
DbType="Int16" />
</SelectParameters>
</asp:SqlDataSource>
</InsertItemTemplate>--%>
</asp:TemplateField>
<asp:TemplateField>
<HeaderTemplate>
<h1>
Item SubSubType:</h1>
<p>
Specifies the sub-sub-item type.</p>
<p>
<i>Not always applicable.</i></p>
</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="lblSubSubItemType" Text='<%# Eval("itemSubSubType") %>' runat="server" />
</ItemTemplate>
<%-- <InsertItemTemplate>
<asp:DropDownList DataTextField="itemSubSubType" DataValueField="subSubTypeId" DataSourceID="sqldsTier3Category"
ID="ddlItemSubSubTypes" runat="server">
</asp:DropDownList>
<asp:SqlDataSource ConnectionString="<%$ ConnectionStrings:myDbConnection%>" ID="sqldsTier3Category"
runat="server" SelectCommand="dbo.getItemSubSubCategories" SelectCommandType="StoredProcedure">
<SelectParameters>
<asp:ControlParameter ControlID="dwNewItem$ddlItemSubTypes" Name="subTypeId" PropertyName="SelectedValue"
DbType="Int16" />
</SelectParameters>
</asp:SqlDataSource>
</InsertItemTemplate>--%>
</asp:TemplateField>
<asp:TemplateField>
<HeaderTemplate>
<h1>
Requires Sword Swinger Class?</h1>
<p>
Specifies whether the item can only be used by the Sword Swinger.</p>
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="cbReqSwordSwinger" Text='<%# Bind("requiresSwordSwinger") %>' runat="server" />
</ItemTemplate>
<%-- <InsertItemTemplate>
<asp:CheckBox runat="server" ID="cbReqSwordSwinder" />
</InsertItemTemplate>--%>
</asp:TemplateField>
<asp:TemplateField>
<HeaderTemplate>
<h1>
Requires Rat Catcher Class?</h1>
<p>
Specifies whether the item can only be used by the Rat Catcher.</p>
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="cbReqRatCatcher" Text='<%# Bind("requiresRatCatcher") %>' runat="server" />
</ItemTemplate>
<InsertItemTemplate>
<asp:CheckBox runat="server" ID="cbReqRatCatcher" />
</InsertItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<HeaderTemplate>
<h1>
Requires Spell Mumbler Class?</h1>
<p>
Specifies whether the item can only be used by the Spell Mumbler.</p>
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="cbReqSpellMumbler" Text='<%# Bind("requiresSpellMumbler") %>' runat="server" />
</ItemTemplate>
<InsertItemTemplate>
<asp:CheckBox runat="server" ID="cbReqSpellMumbler" />
</InsertItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderStyle-CssClass="colorBlue dwHeader">
<HeaderTemplate>
<h1>
Strength permanently added:</h1>
<p>
Specifies the amount of strength the item permanently adds to your character.</p>
<p>
<i>Only available when the item is set to type "Consumable"</i></p>
</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="lblPermanentStrength" Text='<%# Bind("permanentStrength") %>' runat="server" />
</ItemTemplate>
<InsertItemTemplate>
<asp:TextBox Enabled="false" runat="server" ID="tbItemPermanentStr"></asp:TextBox>
</InsertItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderStyle-CssClass="colorBlue dwHeader">
<HeaderTemplate>
<h1>
Agility permanently added:</h1>
<p>
Specifies the amount of agility the item permanently adds to your character.</p>
<p>
<i>Only available when the item is set to type "Consumable"</i></p>
</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="lblPermanentAgility" Text='<%# Bind("permanentAgility") %>' runat="server" />
</ItemTemplate>
<InsertItemTemplate>
<asp:TextBox Enabled="false" runat="server" ID="tbItemPermanentAgl"></asp:TextBox>
</InsertItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderStyle-CssClass="colorBlue dwHeader">
<HeaderTemplate>
<h1>
Magical Power permanently added:</h1>
<p>
Specifies the amount of magical power the item permanently adds to your character.</p>
<p>
<i>Only available when the item is set to type "Consumable"</i></p>
</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="lblPermanentMagicalPower" Text='<%# Bind("permanentMagicalPower") %>'
runat="server" />
</ItemTemplate>
<InsertItemTemplate>
<asp:TextBox Enabled="false" runat="server" ID="tbItemPermanentMP"></asp:TextBox>
</InsertItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderStyle-CssClass="colorBlue dwHeader">
<HeaderTemplate>
<h1>
Health Points restored:</h1>
<p>
Specifies the amount of health points the item restores.</p>
<p>
<i>Only available when the item is set to type "Consumable"</i></p>
</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="lblHPRestored" Text='<%# Bind("restoresHealthPoints") %>' runat="server" />
</ItemTemplate>
<InsertItemTemplate>
<asp:TextBox Enabled="false" runat="server" ID="tbItemRestoresHp"></asp:TextBox>
</InsertItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderStyle-CssClass="colorBlue dwHeader">
<HeaderTemplate>
<h1>
Mana Points restored:</h1>
<p>
Specifies the amount of mana points the item restores.</p>
<p>
<i>Only available when the item is set to type "Consumable"</i></p>
</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="lblManaRestored" Text='<%# Bind("restoresMana") %>' runat="server" />
</ItemTemplate>
<InsertItemTemplate>
<asp:TextBox Enabled="false" runat="server" ID="tbItemRestoresMana"></asp:TextBox>
</InsertItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderStyle-CssClass="colorBlue dwHeader">
<HeaderTemplate>
<h1>
Health Points permanently added:</h1>
<p>
Specifies the amount of health points the item permanently adds to your character.</p>
<p>
<i>Only available when the item is set to type "Consumable"</i></p>
</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="lblPermanentHP" Text='<%# Bind("permanentHealth") %>' runat="server" />
</ItemTemplate>
<InsertItemTemplate>
<asp:TextBox Enabled="false" runat="server" ID="tbItemPermanentHP"></asp:TextBox>
</InsertItemTemplate>
</asp:TemplateField>
</Fields>
</asp:DetailsView>
Try this
public static IEnumerable<Control> GetAllControls(Control parent)
{
foreach (Control control in parent.Controls)
{
yield return control;
foreach (Control descendant in GetAllControls(control))
{
yield return descendant;
}
}
}
and call
List<Control> ControlsToCheck = GetAllControls(dv).OfType<Label>().ToList();
这篇关于获取控件的所有子控件的双床,按类型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!