Hi
I am having a RadGrid . Inside that I placed two RadTimePickers FromTime and ToTime.
Right now I am using Compare Validator for validating To Time and From Time .(from time should be less than to Time)
But I want to show an alert instead of the message
How to achieve it.
My code was given below. Please suggest
<rad:RadGrid ID="gvWorkingHours_New" runat="server" Skin="SkeltaGrid" AutoGenerateColumns="false"
>
<MasterTableView>
<Columns>
<rad:GridTemplateColumn>
<ItemTemplate>
<asp:TextBox runat="server" ID="txtSlotName" CssClass="inputsNoExpression" Text='<%# Eval("SlotName") %>'></asp:TextBox>
</ItemTemplate>
</rad:GridTemplateColumn>
<rad:GridTemplateColumn>
<ItemTemplate>
<radCln:RadTimePicker ID="rtpFromTime" Width="31%" runat="server" TabIndex="2" EnableTyping="true"
TimeView-TimeFormat="HH:mm" DateInput-DateFormat="HH:mm" DateInput-DisplayDateFormat="HH:mm"
DateInput-EmptyMessage="From Time" DBSelectedDate='<%# Eval("FromTime") %>'>
<TimeView ID="tvFrom" runat="server" ShowHeader="False" Interval="00:30" Columns="3">
</TimeView>
</radCln:RadTimePicker>
</ItemTemplate>
</rad:GridTemplateColumn>
<rad:GridTemplateColumn>
<ItemTemplate>
<radCln:RadTimePicker ID="rtpToTime" Width="31%" runat="server" TabIndex="2" EnableTyping="true"
TimeView-TimeFormat="HH:mm" DateInput-DateFormat="HH:mm" DateInput-DisplayDateFormat="HH:mm"
DateInput-EmptyMessage="To Time" DBSelectedDate='<%# Eval("ToTime") %>'>
<TimeView ID="tvTo" runat="server" ShowHeader="False" Interval="00:30" Columns="3"
OnClientTimeSelected="TestHandler">
</TimeView>
</radCln:RadTimePicker>
</ItemTemplate>
</rad:GridTemplateColumn>
<rad:GridTemplateColumn>
<ItemTemplate>
<asp:CompareValidator ID="dateCompareValidator" runat="server" ControlToValidate="rtpToTime"
ControlToCompare="rtpFromTime" Operator="GreaterThan" Type="String" ErrorMessage="To Date must be greater than From Date">
</asp:CompareValidator>
</ItemTemplate>
</rad:GridTemplateColumn>
</Columns>
</MasterTableView>
</rad:RadGrid>
<asp:LinkButton ID="LinkButton1" runat="server" OnClick="lnkbtnAddSlot_New_Click"
Width="97px" CssClass="sf-inputsLinkButton" OnClientClick="return AddSlot_New()">Add Slot_New</asp:LinkButton>
---
code behind
protected
void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
SetInitialRowForSlots_New();
}
}
private void SetInitialRowForSlots_New()
{
DataTable dtSlots = new DataTable();
dtSlots.Columns.Add(
new DataColumn("SlotName", typeof(string)));
dtSlots.Columns.Add(
new DataColumn("FromTime", typeof(string)));
dtSlots.Columns.Add(
new DataColumn("ToTime", typeof(string)));
DataRow drSlot = dtSlots.NewRow();
drSlot[
"SlotName"] = string.Empty;
drSlot[
"FromTime"] = new TimeSpan(0, 0, 0);
drSlot[
"ToTime"] = new TimeSpan(0, 0, 0);
dtSlots.Rows.Add(drSlot);
gvWorkingHours_New.DataSource = dtSlots;
gvWorkingHours_New.DataBind();
}
protected void lnkbtnAddSlot_New_Click(object sender, EventArgs e)
{
DataTable dtSlots = new DataTable();
dtSlots.Columns.Add(
new DataColumn("SlotName", typeof(string)));
dtSlots.Columns.Add(
new DataColumn("FromTime", typeof(string)));
dtSlots.Columns.Add(
new DataColumn("ToTime", typeof(string)));
foreach (GridDataItem pkgItem in gvWorkingHours_New.MasterTableView.Items)
{
TextBox SlotName = pkgItem.FindControl("txtSlotName") as TextBox;
RadTimePicker FrTime = pkgItem.FindControl("rtpFromTime") as RadTimePicker;
RadTimePicker ToTime = pkgItem.FindControl("rtpToTime") as RadTimePicker;
DataRow dr = dtSlots.NewRow();
dr[
"SlotName"] = SlotName.Text;
dr[
"FromTime"] = new TimeSpan(((DateTime)(FrTime.DbSelectedDate)).TimeOfDay.Hours, ((DateTime)(FrTime.DbSelectedDate)).TimeOfDay.Minutes, 0);
dr[
"ToTime"] = new TimeSpan(((DateTime)(ToTime.DbSelectedDate)).TimeOfDay.Hours, ((DateTime)(ToTime.DbSelectedDate)).TimeOfDay.Minutes, 0);
dtSlots.Rows.Add(dr);
}
DataRow drEmpty = dtSlots.NewRow();
drEmpty[
"SlotName"] = string.Empty;
drEmpty[
"FromTime"] = new TimeSpan(0, 0, 0);
drEmpty[
"ToTime"] = new TimeSpan(0, 0, 0);
dtSlots.Rows.Add(drEmpty);
gvWorkingHours_New.DataSource = dtSlots;
gvWorkingHours_New.DataBind();
}
Regards
Sreedhar Ambati