2010-09-02 5 views
0

На моей странице aspx у меня есть несколько выпадающих элементов управления.Попытка выяснить, как динамически обновлять атрибуты элементов управления ASP динамически?

Я хотел бы обновить атрибут каждого элемента управления с «классом = leftColumn» со следующей строкой:

propertyID.Attributes["nameOfAttribute"] = "false"; 

Но вместо того, чтобы вручную выписывая каждый ControlID и установив его атрибут с линией выше , Я надеялся, что есть способ пройти и установить атрибут для каждого идентификатора управления, если у него есть класс = leftcolumn.

Это то, что я знаю, это очень легко с JQuery, , но мне нужно сделать это с кодом позади (C#)

мне сказали, что это невозможно (то есть приобрести список всех управления, а затем перебирать список и дать ему атрибут или любым другим способом. это установка вручную каждый элемент управления как в примере выше это единственный способ в ASP.NET.

Спасибо,

ответ

2

Используйте LINQ для этого. Вы можете определить способ расширения, который поможет. ControlCollection нуждается в некоторой помощи. Что-то вроде:

foreach (DropDownList dd in this.Controls 
           .All() 
           .OfType<DropDownList>() 
           .Where(c => c.Attributes["foo"] == "bar")) 
{ 
    // do something    
} 

... 

//define the extension method. 
public static IEnumerable<Control> All(this ControlCollection controls) 
{ 
    foreach (Control control in controls) 
    { 
     foreach (Control grandChild in control.Controls.All()) 
      yield return grandChild; 

     yield return control; 
    } 
} 

Kudos to David Findley at his ASP.NET blog.

0

Вы не упоминаете если выпадающие списки по крайней мере включены в какой-то общий контейнер, чтобы помочь найти их. Если нет, и вам нужно буквально просмотреть всю страницу для любого такого раскрывающегося списка, тогда я предлагаю создать рекурсивный метод, который начинается на уровне страницы и перечисляет коллекции элементов управления детьми и детьми детей и т. д. и анализирует каждый найденный элемент управления.

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