2016-08-08 3 views
1

Мне нужно, чтобы эта страница была очень удобной в обслуживании, поэтому мне нужно, чтобы вся информация была запрограммирована. Мне нужно создать флажки рядом с обычными ярлыками, не касаясь файла .aspx. прямо сейчас я создаю список со всеми метками на моей странице с именем labels. Каждая метка на моем сайте имеет идентификатор, начинающийся с lbl_, но те, которые должны иметь флажок, начинаются с 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)

ответ

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.

+0

хорошо, звучит неплохо. Я собираюсь попробовать это. – lenny

0

Если установить свойство Text в вашем контроле этикетки, в основном все дочерние элементы управления уничтожаются. Смотрите этот ответ: asp:label doesn't render children

Смежные вопросы