在不同页面调用用户控件textbox动态验证:
在ascx页面中定义一个textbox控件,在不同的aspx页面调用时,有些需要验证非空有些不需要验证非空如何实现:
实现思路:
1.在ascx用户控件页面,放一个非空验证的控件(RequiredFieldValidator),将启用状态设置为Enabled = false.就是不启用控件。并且给这个用户控件自定义一个属性。属性名称,类型可以自定义。
1 private string isValidation; 2 public string IsValidation 3 { 4 get { return isValidation; } 5 set { isValidation = value; } 6 }
2.在aspx页面给该属性赋值。
1 <td class="ccms_td_right" colspan="5"> 2 <uc1:ComboGrid1 ID="cgDetectionUnitName" runat="server" EnableViewState="false" isValidation="检测单位不能为空" EnabledAction="(12.*)" Class="ccms_textbox" /> 3 <input id="hiDetectionUnitName" runat="server" field="DetectionUnitName" tablename="TesterRecord" 4 type="hidden" /> 5 </td>
3.在ascx页面取得该属性的值,通过判断该属性的值。来确定是否需要验证。
1 protected void Page_Load(object sender, EventArgs e) 2 { 3 if (!IsPostBack) 4 { 5 if (isValidation != null) 6 { 7 rfvTB1.Enabled = true; 8 rfvTB1.ErrorMessage = isValidation; 9 } 10 11 } 12 }
在这里,我自定义的属性是 IsValidation ,string类型的。
当我需要非空验证时,就给该属性赋值。赋的值为,当控件为空时的提示信息。
当不需要验证时,就不用管这个属性。