Пытаетесь понять, как динамически обновлять атрибуты элементов управления ASP? - PullRequest
0 голосов
/ 02 сентября 2010

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

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

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

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

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

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

Спасибо

Ответы [ 2 ]

2 голосов
/ 02 сентября 2010

Используйте 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;
    }
}

Престижность Дэвиду Финдли в его блоге ASP.NET .

0 голосов
/ 02 сентября 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...