Hi,
I have created an infopath form in which I placed two datepicker control.
I need to validate like both the startdate month & year ,enddate month&year should be same
How can do this? I tried using the C# code behind like this,
public void End_Validating(object sender, XmlValidatingEventArgs e)
{
XPathNavigator pathNav = this.MainDataSource.CreateNavigator();
string strStartDate = pathNav.SelectSingleNode("/my:TimeSheet/my:Dates/my:start", NamespaceManager).Value.ToString();
string StrEndDate = pathNav.SelectSingleNode("/my:TimeSheet/my:Dates/my:End", NamespaceManager).Value.ToString();
if (e.Operation == XmlOperation.ValueChange)
{
if (strStartDate != "" || StrEndDate != "")
{
iSDate = Convert.ToInt32(strStartDate.Substring(5, 2).ToString());
iEDate = Convert.ToInt32(StrEndDate.Substring(5, 2).ToString());
if (iSDate iEDate)
{
e.ReportError(e.Site, true, "Please select the same month");
}
}
}
}
but it is showing error ,
System.ArgumentOutOfRangeException
startIndex cannot be larger than length of string.
Parameter name: startIndex
at System.String.InternalSubStringWithChecks(Int32 startIndex, Int32 length, Boolean fAlwaysCopy)
at TimeSheet.FormCode.End_Validating(Object sender, XmlValidatingEventArgs e)
at Microsoft.Office.InfoPath.Internal.XmlEventHost.GenericProxy(Object genericDelegate, DataDOMEvent dataDOMEvent, InfoPathEvents type)
at Microsoft.Office.InfoPath.Internal.XmlEventHost.ValidatingProxy(DataDOMEvent dataDOMEvent)
at Microsoft.Office.Interop.InfoPath.SemiTrust._DataDOMEventSink_SinkHelper.OnValidate(DataDOMEvent pDataDOMEvent)
Please Help me