2012-06-27 7 views
1

올드 제목 : 의 I는이 작업을 수행해야 할 이유는 내가 주변에 작품을 만들려고하고 있기 때문입니다 :필수 필드 검사기

올드 정보 값을 유지에서 동적으로 생성 된 컨트롤을 방지 Image 컨트롤에 필요한 필드 유효성 검사기입니다. 내 코드가 작동하는 방식은 버튼 옆에 Image 컨트롤이 있고 사용자가 버튼을 클릭 한 다음 이미지를 업로드하라는 메시지가 표시됩니다. 사용자가 다음 단계로 넘어 가기 전에 이미지를 업로드해야합니다.

이미지 컨트롤에 필요한 필드 유효성 검사기가 없으므로 포스트 백에서 이미지 컨트롤을 다시 만들 때마다 이미지 컨트롤의 imageURL을 표시한다고 가정하는 텍스트 상자를 만들었습니다. 그러나 텍스트 상자는 항상 컨트롤의 초기 생성 값을 유지합니다.

* 참고 : 페이지의 모든 컨트롤이 동적으로 만들어집니다.

내가 제일 먼저하는 일은 이미지 컨트롤을 만들고 HTML 테이블에 추가하는 것입니다. 이것은 잘 작동합니다. 오른쪽 그 후 나는 테이블 셀을 찾아 이미지 컨트롤이있는 셀에 텍스트 상자를 추가

HtmlTableCell tc = (HtmlTableCell)customProperties.FindControl("tcControl_" + (i + 1).ToString()); 
RadBinaryImage rbi = (RadBinaryImage)customProperties.FindControl("CustomControl" + (i + 1).ToString()); 

TextBox photoValue = new TextBox(); 
photoValue.ID = "CustomControl" + (i + 1).ToString() + "_txt"; 
photoValue.Text = rbi.imageUrl; 

이것은 내가 모든 컨트롤을 만들 때마다 발생합니다. 그들 모두가 그들의 가치를 지키고있는 모든 컨트롤들에 대해서, 이것은 이것이 일어나기를 원하지 않는 유일한 컨트롤입니다. 아무도 이것이 어떻게 할 수 있는지 알고 있습니까? 또는 이미지 컨트롤의 유효성을 검사하는 또 다른 방법은 무엇입니까?

해결 : 시간에 대한

덕분에, 모든 코멘트/답변은 (감사합니다

은 내가 여기 here. 을 발견 checkboxlist 필요한 필드 유효성 검사기의 수정 된 버전을 생성하는 코드입니다 : 나는 보안상의 이유로 ########와 네임 스페이스를 대체

using System; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.ComponentModel; 
using Telerik.Web.UI; 

namespace ####################################### 
{ 
    public class RequiredFieldValidatorForImages : 
         System.Web.UI.WebControls.BaseValidator 
    { 
     private Control _ctrl; 

     public RequiredFieldValidatorForImages() 
     { 
      base.EnableClientScript = false; 
     } 

     protected override bool ControlPropertiesValid() 
     { 
      Control ctrl = FindControl(ControlToValidate); 

      if (ctrl != null) 
      { 
       _ctrl = (Control)ctrl; 
       return (_ctrl != null); 
      } 
      else 
       return false; // raise exception 
     } 

     protected override bool EvaluateIsValid() 
     { 
      try 
      { 
       Image rbi = (Image)_ctrl; 
       return rbi.ImageUrl != "~/images/noimages.jpg"; 
      } 
      catch 
      { 
       RadBinaryImage rbi = (RadBinaryImage)_ctrl; 
       return rbi.ImageUrl != "~/images/noimages.jpg"; 
      } 
     } 
    } 
} 

답변

0

합니다. 해결 :

은 내가 여기 here. 을 발견 코드 인 checkboxlist 필요한 필드 유효성 검사기의 수정 된 버전을 만들어 : I 보안상의 이유로 ########와 네임 스페이스를 교체했다.

using System; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.ComponentModel; 
using Telerik.Web.UI; 

namespace ####################################### 
{ 
    public class RequiredFieldValidatorForImages : 
         System.Web.UI.WebControls.BaseValidator 
    { 
     private Control _ctrl; 

     public RequiredFieldValidatorForImages() 
     { 
      base.EnableClientScript = false; 
     } 

     protected override bool ControlPropertiesValid() 
     { 
      Control ctrl = FindControl(ControlToValidate); 

      if (ctrl != null) 
      { 
       _ctrl = (Control)ctrl; 
       return (_ctrl != null); 
      } 
      else 
       return false; // raise exception 
     } 

     protected override bool EvaluateIsValid() 
     { 
      try 
      { 
       Image rbi = (Image)_ctrl; 
       return rbi.ImageUrl != "~/images/noimages.jpg"; 
      } 
      catch 
      { 
       RadBinaryImage rbi = (RadBinaryImage)_ctrl; 
       return rbi.ImageUrl != "~/images/noimages.jpg"; 
      } 
     } 
    } 
} 
관련 문제