Как проверить динамически созданный элемент управления? - PullRequest
2 голосов
/ 07 января 2009

У меня есть страница asp.net, некоторые ее элементы управления создаются динамически, эти элементы управления являются одним из следующих; текстовое поле, календарь или выпадающий список.

Эти элементы управления в некоторых случаях должны быть проверены на основе чтения флага из db?

Есть ли способ проверить динамически создаваемые элементы управления?

Ответы [ 4 ]

1 голос
/ 07 января 2009

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

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

0 голосов
/ 03 февраля 2009

У меня есть решение этой проблемы. Одна из основных проблем, с которыми я столкнулся на этой странице, это то, что она поддерживает AJAX, и мне нужно проверить динамически созданные элементы управления.

Мое решение, и оно работает правильно, при создании элемента управления я добавил к нему атрибут ввода, помечающий его как обязательный или нет, и другой атрибут, который помечает его как поле для проверки или нет?

Используя Javascript, я прохожу все входные теги с атрибутом «динамическое управление» и, основываясь на «подтвердить аттрибут», проверяю я это или нет. Просто, правда?

Пример кода: При создании элемента управления отметьте его следующим образом

txtBox.Attributes.Add("Type", "T"); // Type of control.
txtBox.Attributes.Add("IsKeyField", "Y"); // Is dynamically created field.
txtBox.Attributes.Add("IsMandatory", "Y");  // Is mandatory or not?

код JavaScript

            var inputControls = document.getElementsByTagName("input");
            for(var i=0 ; i<inputControls.length ; i++)
            {
                if ( inputControls[i].getAttribute("IsKeyField") == "Y" )                                        
                {
                    if (inputControls[i].getAttribute("Type") == "T" || (inputControls[i].getAttribute("Type") == "C"))
                    {
                        if(inputControls[i].getAttribute("IsMandatory") == "Y")
                        {
                            if(inputControls[i].value == "")
                            {
                                errorMsg += "\n" + inputControls[i].getAttribute("KeyField_Name") + " is required.";
                                isValidated = false;
                            }                            
                        }                         
                    }
                }
            }

Конечно, вы можете вызвать этот код, нажимая нужную кнопку.

btnUpload.Attributes.Add("onClick", "javascript:if(!ValidateMandatoryFields()) return false;");
0 голосов
/ 07 января 2009

Когда вы создаете любой элемент управления динамически, также присоединяйте к ним требуемый элемент управления Validator, и вы можете включать / отключать элементы управления валидатора во время выполнения.

0 голосов
/ 07 января 2009

Вы можете создавать валидаторы одновременно с созданием этих элементов управления

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