获取控件的所有子控件的双床,按类型 [英] Getting a lits of all child controls of a control, by type

查看:203
本文介绍了获取控件的所有子控件的双床,按类型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试使创建与那些字符串类型的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆