相关疑难解决方法(0)

按类型获取控件的所有子控件的lits

我试图创建一个方法,创建一个List,其名称为DetalsView的所有子控件的类型为string.

我得到的最接近的是:

            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";
                }
            }
Run Code Online (Sandbox Code Playgroud)

但是,所有这一切都是在第一个foreach中迭代一次,然后退出(即dv.Controls只返回一个项目).如果我使用FindControl,我可以到达项目,但这意味着我必须为每个项目做.

任何艰难的?

谢谢!

编辑:这是我的DetailsView(我剪掉了一些东西,只有更多的控件,所以它适合页面):

        <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> …
Run Code Online (Sandbox Code Playgroud)

asp.net detailsview

2
推荐指数
1
解决办法
8972
查看次数

标签 统计

asp.net ×1

detailsview ×1