【问题标题】:Create checkbox next to each label在每个标签旁边创建复选框
【发布时间】:2016-08-08 22:21:08
【问题描述】:

我需要这个页面非常容易维护,所以我需要以编程方式生成大部分内容。我需要在普通标签旁边创建复选框,而不触及 .aspx 文件。现在我在我的页面上生成一个包含所有标签的列表,名为labels。我网站上的每个标签都有一个以lbl_ 开头的ID,但应该有一个复选框的ID 以lblx_ 开头。然后我想用这样的东西来创建所说的复选框:

foreach (Label label in labels)
{
    if (label.ID.Contains("lblx_"))
    {
        CheckBox cb = new CheckBox();
        cb.ID = "cb_statistikname_" + label.ID;

        label.Controls.AddAt(0, cb);
    }
}

现在这段代码替换了标签,当我使用label.Control.Add(cb)时也会发生同样的情况

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

    您可以将Page.Controls.AddAt() 与page.Page.Controls.IndexOf() 组合使用

    if(label.Parent != null && label.Parent.Controls.IndexOf(label) >= 0)
        label.Parent.Controls.AddAt(label.Parent.Controls.IndexOf(label) + 1, cb);
    

    注意:这应该在 Page PreInit 事件中完成。

    【讨论】:

      【解决方案2】:

      如果在 Label 控件中设置 Text 属性,基本上所有子控件都会被清除。看到这个答案:asp:label doesn't render children

      【讨论】:

        猜你喜欢
        • 2012-01-21
        • 1970-01-01
        • 2023-01-11
        • 2021-06-05
        • 2021-09-12
        • 2021-06-01
        • 2019-02-15
        • 1970-01-01
        • 2020-07-15
        相关资源
        最近更新 更多