2009-06-02 3 views
2

인보이스 애플리케이션을 만들 때 사용자가 광고 항목을 입력 할 수있는 섹션에서 수량, 가격, 확장 가격, 설명 등 일부 필드가 포함됩니다.ASP.NET 페이지의 텍스트 상자에 텍스트가 입력되지 않았는지 확인하는 방법은 무엇입니까?

사용자가 필드는 해당 필드가 필요하지만 필드에 데이터가 입력되지 않으면 해당 필드에 아무 것도 필요하지 않습니다. if 문을 사용하지 않고도 효율적이고 깨끗한 방법은 무엇입니까?

텍스트 상자가 하나 뿐인 경우 유효성 검사를하는 것과 같습니다.

답변

3

CustomValidator의 ServerValidate 이벤트에서 이와 비슷한 방법을 시도해 볼 수 있습니다.

// 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)); 

제대로 작동하려면 약간의 조정이 필요할 수 있습니다.하지만 아이디어는 얻을 수 있습니다. 그에 따라 모든 텍스트 상자가 비어 있는지 테스트하십시오. 이 ASP.NET 인 경우

또한 직접 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 개체 쿼리 - 그래서 그들은 가능한 코드를 최적화했습니다 상상. –

2

TextBox 배열을 만들고 배열의 관련된 모든 텍스트 상자에 대한 참조를 저장할 수 있습니다. 혹시라도 필요할 때 for 루프에서 배열을 반복하여 값이있는 첫 번째 항목을 찾을 수 있습니다. 가치가있는 값을 찾으면 해당 배열의 다른 모든 항목에도 값이 필요하다는 것을 알게됩니다.

또한 관련 텍스트 상자의 다른 그룹이있는 경우 그룹을 계속 유지할 수 있도록 추가 배열을 만들 수 있습니다.

0

여러 가지 방법으로 jQuery를 사용할 수 있습니다.

  1. ASP.NET에서 사용할 수있는 필드 유효성 검사기를 사용하십시오.
  2. Windows Forms 용 JavaScript를 사용하십시오.

Windows Forms의 경우 컨트롤 유효성 검사기를 사용하거나 컨트롤 배열을 전달하는 간단한 함수를 사용할 수도 있습니다. 배열의 항목이 채워진 경우 채워지지 않은 필드를 반환하여 모든 항목을 채워야합니다.

관련 문제