جناب مهندس راد. من کد کلاس رو اینطوری تغییر دادم
Protected Overrides Function EvaluateIsValid() As Boolean
Dim checkEmptyResult As Boolean = False
Dim checkFormat As Boolean = False
Dim checkInRange As Boolean = False
Dim ControlValue As String = Me.ControlValue
checkEmptyResult = Me.CheckEmpty(ControlValue)
If (Me.ValidateEmptyText) Then
If (checkEmptyResult) Then Return False
End If
If (checkEmptyResult = False) Then
If SmallDate Then
If ControlValue.Length <> 6 Then Return False
ControlValue = "13" & ControlValue.Substring(0, 2) & "/" & ControlValue.Substring(2, 2) & "/" & ControlValue.Substring(4, 2)
End If
checkFormat = Me.CheckFormat(ControlValue)
If (checkFormat = False) Then Return False
End If
If (checkEmptyResult = False) Then
checkInRange = Me.CheckInRange(ControlValue)
If (checkInRange = False) Then Return False
End If
Return True
End Function
و
Page.ClientScript.RegisterExpandoAttribute(Me.Clie ntID, "smalldate", Me.fSmallDate.ToString())
سپس در فایل اسکریپت این تغییرات رو اعمال کردم
function smallDate() {
return gs.smalldate;
}
و
function validatePersianDate(val) {
gs = val;
var resultCheckEmpty = false;
var resultFormat = false;
var resultInRange = false;
var value = ValidatorGetValue(val.controltovalidate);
resultCheckEmpty = checkEmpty(value);
if (validateEmptyText() == "True") {
if (resultCheckEmpty == true)
return false;
}
if (resultCheckEmpty == false) {
if (smallDate() == "True") {
if (value.length != 6) { alert(value.length); return false; }
value = "13" + value.substr(0, 2) + "/" + value.substr(2, 2) + "/" + value.substr(4, 2);
}
resultFormat = checkFormat(value);
if (resultFormat == false)
return false;
}
if (resultCheckEmpty == false) {
resultInRange = checkInRange(value);
if (resultInRange == false)
return false;
}
return true;
}
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<cc1:PersianDateValidator ID="PersianDateValidator1" runat="server"
FirstWhat="FirstYear" ControlToValidate="TextBox1" Text="*"
ValidateEmptyText="True" SmallDate="True" ErrorMessage="*"
EnableClientScript="False" ></cc1:PersianDateValidator>
<asp:Button ID="Button1" runat="server" Text="Button" />
الان کنترل همیشه درست کار نمی کنه. یه راه حلی چیزی ؟!