Как проверить, есть ли текст или нет во всех текстовых полях на странице ASP.NET?

2

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

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

Я предполагаю, что это похоже на выполнение проверки, если только текстовое поле имеет текст.

Теги:

3 ответа

3
Лучший ответ

Вы можете попробовать что-то подобное в событии ServerValidate для CustomValidator.

// test for all textboxes having some text in them...
e.IsValid = (from TextBox c in this.Controls
             where c is TextBox
             select c).All(tb => !string.IsNullOrEmpty(tb.Text));

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

Вы также можете использовать jQuery для проверки на стороне клиента в вашем CustomValidator

function clientValidate(sender, e) {

    // get array of textboxes with a common css class
    var textBoxes = $("#SomeCssSelector input").val();

    // loop here to test for having text or no text.
    e.IsValid = ... ;


}
  • 0
    Будет ли это касаться каждого элемента управления на странице, чтобы увидеть, является ли это текстовым полем? Быстрее программировать, но, возможно, не быстрее обрабатывать?
  • 0
    да, это, вероятно, будет проходить собрание элементов управления. Это стандартный запрос Linq to Objects - поэтому я представляю, что они оптимизировали этот код, где это возможно.
2

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

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

0

Несколько способов, если это ASP.NET.

  • Использовать полевые проверки, доступные в ASP.NET.
  • Используйте JavaScript для Windows Forms.

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню