2012-06-27 52 views
1

舊題: 我之所以要做到這一點是因爲我想圍繞創建工作爲:從固定值必填字段驗證對於圖像控制

舊信息,防止動態創建的控制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; 

出現這種情況,每次我創建所有控件。對於所有的控制,他們都保留自己的價值觀,這是我不希望發生的唯一控制。有誰知道如何做到這一點?或者另一種驗證圖像控制的方式?

感謝您的時間, 所有評論/答案是讚賞(:

解決:

我創建了一個CheckBoxList的必填字段校驗器,我發現here. 這裏的修改版本是代碼:我更換了命名空間########出於安全原因

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

。解決:

我創建了一個CheckBoxList的必填字段校驗器,我發現here. 下面是代碼的修改版:我更換了命名空間########出於安全原因。

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"; 
      } 
     } 
    } 
}