Hi
I have a RadGrid with 3 columns. One of them is a GridDateTimeColumn of type DateTimePicker. I'm trying to set the default time to 4pm instead of midnight when a date is selected.
I found code on another post that shows how to set the default time for a RadDateTimePicker by using a client event for OnDateSelected but I can't get it to work if the datetimepicker is in a grid.
I added a client event for onDateSelected in the code behind (in the RadGrid1_ItemCreated sub) and it does get called when I select a date but it gives me an error when I try to set the time. The error is "Sys.ArgumentNullException: Value cannot be null. Parameter name: instance"
The client event code is
<telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
<script type="text/javascript">
var isTimeSet = false;
function timeSelecting(sender, args) {
isTimeSet = true;
}
function dateSelected(sender, args) {
if (args.get_oldDate() == null && !isTimeSet) {
args.set_cancel(true);
isTimeSet = true;
sender.get_timeView().setTime(16, 0, 0, 0); //I'm getting the error on this line
}
if (isTimeSet) {
isTimeSet = false;
}
}
</script>
</telerik:RadCodeBlock>
This code does work with a RadDateTimePicker on the page but won't work for the RadDateTimepicker on the RadGrid. Is there any other way I can set the default time? I'm using version 2013.3.1114.40
My RadGrid -
<telerik:RadGrid ID="RadGrid1" runat="server" CellSpacing="0" GridLines="None" AutoGenerateDeleteColumn="True"
AutoGenerateEditColumn="True" AutoGenerateColumns="False" Width="75%">
<MasterTableView CommandItemDisplay="Top" EditMode="InPlace" DataKeyNames="TEST_ID"
nomasterrecordstext="No records entered">
<CommandItemSettings ExportToPdfText="Export to PDF"></CommandItemSettings>
<RowIndicatorColumn FilterControlAltText="Filter RowIndicator column"
visible="False"></RowIndicatorColumn>
<ExpandCollapseColumn Visible="True"
FilterControlAltText="Filter ExpandColumn column" Created="True"></ExpandCollapseColumn>
<Columns>
<telerik:GridDateTimeColumn AllowFiltering="False" AllowSorting="False"
DataField="TEST_DATE" DataType="System.DateTime"
FilterControlAltText="Filter column column" HeaderText="Test Date and Time"
PickerType="DateTimePicker" ShowSortIcon="False" UniqueName="TEST_DATE" >
<ColumnValidationSettings EnableRequiredFieldValidation="true">
<RequiredFieldValidator ForeColor="Red" ErrorMessage="!"></RequiredFieldValidator>
</ColumnValidationSettings>
</telerik:GridDateTimeColumn>
<telerik:GridNumericColumn AllowFiltering="False" AllowSorting="False"
DataField="TEST" DecimalDigits="1" FilterControlAltText="Filter column1 column"
HeaderText="Test Column" UniqueName="TEST">
<ColumnValidationSettings EnableRequiredFieldValidation="true">
<RequiredFieldValidator ForeColor="Red" ErrorMessage="!"></RequiredFieldValidator>
</ColumnValidationSettings>
</telerik:GridNumericColumn>
<telerik:GridBoundColumn AllowFiltering="False" AllowSorting="False"
DataField="TEST_ID" FilterControlAltText="Filter column2 column"
HeaderText="Test ID" UniqueName="TEST_ID" Visible="False">
</telerik:GridBoundColumn>
</Columns>
<EditFormSettings>
<EditColumn FilterControlAltText="Filter EditCommandColumn column"></EditColumn>
</EditFormSettings>
<PagerStyle PageSizeControlType="RadComboBox"></PagerStyle>
<CommandItemTemplate>
<table class="style1">
<tr>
<td align="right">
<asp:LinkButton ID="add" runat="server" CommandName="InitInsert"
ForeColor="#0066FF" Text="Add more"></asp:LinkButton>
</td>
</tr>
</table>
</CommandItemTemplate>
</MasterTableView>
<PagerStyle PageSizeControlType="RadComboBox"></PagerStyle>
<FilterMenu EnableImageSprites="False"></FilterMenu>
</telerik:RadGrid>
Adding Client Event in code behind
Protected Sub RadGrid1_ItemCreated(sender As Object, e As Telerik.Web.UI.GridItemEventArgs) Handles RadGrid1.ItemCreated
If (TypeOf e.Item Is GridEditableItem AndAlso e.Item.IsInEditMode) Then
If TypeOf e.Item Is GridEditFormInsertItem OrElse TypeOf e.Item Is GridDataInsertItem Then
Dim editor1 As GridDateTimeColumnEditor = CType(item.EditManager.GetColumnEditor("TEST_DATE"), GridDateTimeColumnEditor)
Dim dtp1 As RadDateTimePicker = editor1.PickerControl
dtp1.ClientEvents.OnDateSelected = "dateSelected"
Dim rtv1 As RadTimeView = editor1.SharedTimeView
rtv1.Interval = New TimeSpan(0, 30, 0)
rtv1.OnClientTimeSelected = "timeSelecting"
End If
End If
End Sub
Thanks
I have a RadGrid with 3 columns. One of them is a GridDateTimeColumn of type DateTimePicker. I'm trying to set the default time to 4pm instead of midnight when a date is selected.
I found code on another post that shows how to set the default time for a RadDateTimePicker by using a client event for OnDateSelected but I can't get it to work if the datetimepicker is in a grid.
I added a client event for onDateSelected in the code behind (in the RadGrid1_ItemCreated sub) and it does get called when I select a date but it gives me an error when I try to set the time. The error is "Sys.ArgumentNullException: Value cannot be null. Parameter name: instance"
The client event code is
<telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
<script type="text/javascript">
var isTimeSet = false;
function timeSelecting(sender, args) {
isTimeSet = true;
}
function dateSelected(sender, args) {
if (args.get_oldDate() == null && !isTimeSet) {
args.set_cancel(true);
isTimeSet = true;
sender.get_timeView().setTime(16, 0, 0, 0); //I'm getting the error on this line
}
if (isTimeSet) {
isTimeSet = false;
}
}
</script>
</telerik:RadCodeBlock>
This code does work with a RadDateTimePicker on the page but won't work for the RadDateTimepicker on the RadGrid. Is there any other way I can set the default time? I'm using version 2013.3.1114.40
My RadGrid -
<telerik:RadGrid ID="RadGrid1" runat="server" CellSpacing="0" GridLines="None" AutoGenerateDeleteColumn="True"
AutoGenerateEditColumn="True" AutoGenerateColumns="False" Width="75%">
<MasterTableView CommandItemDisplay="Top" EditMode="InPlace" DataKeyNames="TEST_ID"
nomasterrecordstext="No records entered">
<CommandItemSettings ExportToPdfText="Export to PDF"></CommandItemSettings>
<RowIndicatorColumn FilterControlAltText="Filter RowIndicator column"
visible="False"></RowIndicatorColumn>
<ExpandCollapseColumn Visible="True"
FilterControlAltText="Filter ExpandColumn column" Created="True"></ExpandCollapseColumn>
<Columns>
<telerik:GridDateTimeColumn AllowFiltering="False" AllowSorting="False"
DataField="TEST_DATE" DataType="System.DateTime"
FilterControlAltText="Filter column column" HeaderText="Test Date and Time"
PickerType="DateTimePicker" ShowSortIcon="False" UniqueName="TEST_DATE" >
<ColumnValidationSettings EnableRequiredFieldValidation="true">
<RequiredFieldValidator ForeColor="Red" ErrorMessage="!"></RequiredFieldValidator>
</ColumnValidationSettings>
</telerik:GridDateTimeColumn>
<telerik:GridNumericColumn AllowFiltering="False" AllowSorting="False"
DataField="TEST" DecimalDigits="1" FilterControlAltText="Filter column1 column"
HeaderText="Test Column" UniqueName="TEST">
<ColumnValidationSettings EnableRequiredFieldValidation="true">
<RequiredFieldValidator ForeColor="Red" ErrorMessage="!"></RequiredFieldValidator>
</ColumnValidationSettings>
</telerik:GridNumericColumn>
<telerik:GridBoundColumn AllowFiltering="False" AllowSorting="False"
DataField="TEST_ID" FilterControlAltText="Filter column2 column"
HeaderText="Test ID" UniqueName="TEST_ID" Visible="False">
</telerik:GridBoundColumn>
</Columns>
<EditFormSettings>
<EditColumn FilterControlAltText="Filter EditCommandColumn column"></EditColumn>
</EditFormSettings>
<PagerStyle PageSizeControlType="RadComboBox"></PagerStyle>
<CommandItemTemplate>
<table class="style1">
<tr>
<td align="right">
<asp:LinkButton ID="add" runat="server" CommandName="InitInsert"
ForeColor="#0066FF" Text="Add more"></asp:LinkButton>
</td>
</tr>
</table>
</CommandItemTemplate>
</MasterTableView>
<PagerStyle PageSizeControlType="RadComboBox"></PagerStyle>
<FilterMenu EnableImageSprites="False"></FilterMenu>
</telerik:RadGrid>
Adding Client Event in code behind
Protected Sub RadGrid1_ItemCreated(sender As Object, e As Telerik.Web.UI.GridItemEventArgs) Handles RadGrid1.ItemCreated
If (TypeOf e.Item Is GridEditableItem AndAlso e.Item.IsInEditMode) Then
If TypeOf e.Item Is GridEditFormInsertItem OrElse TypeOf e.Item Is GridDataInsertItem Then
Dim editor1 As GridDateTimeColumnEditor = CType(item.EditManager.GetColumnEditor("TEST_DATE"), GridDateTimeColumnEditor)
Dim dtp1 As RadDateTimePicker = editor1.PickerControl
dtp1.ClientEvents.OnDateSelected = "dateSelected"
Dim rtv1 As RadTimeView = editor1.SharedTimeView
rtv1.Interval = New TimeSpan(0, 30, 0)
rtv1.OnClientTimeSelected = "timeSelecting"
End If
End If
End Sub
Thanks