every time i trigger the TimePicker to pop-up, it still has the previously selected times focused/highlighted. see attached screen shot. how do i set the focused/highlighted time client-side?
7 Answers, 1 is accepted
0
Hi Drew,
This is an issue related to the control's popup animation - if you move the mouse while the hide animation is running, some time cells will be highlighted. This problem is fixed in the latest versions. Please upgrade RadControls or disable the animation.
<telerik:RadDateTimePicker>
<ShowAnimation Duration="0" />
<HideAnimation Duration="0" />
</telerik:RadDateTimePicker>
All the best,
Dimo
the Telerik team
This is an issue related to the control's popup animation - if you move the mouse while the hide animation is running, some time cells will be highlighted. This problem is fixed in the latest versions. Please upgrade RadControls or disable the animation.
<telerik:RadDateTimePicker>
<ShowAnimation Duration="0" />
<HideAnimation Duration="0" />
</telerik:RadDateTimePicker>
All the best,
Dimo
the Telerik team
Do you want to have your say when we set our development plans?
Do you want to know when a feature you care about is added or when a bug fixed?
Explore the
Telerik Public Issue Tracking
system and vote to affect the priority of the items
0
Jeff
Top achievements
Rank 1
answered on 07 Sep 2010, 09:03 PM
the version update fixed it, not the animation disable.
now i need to set the focused time client-side. i have a page with multiple textboxes that share a timepicker. every time the timepicker pops, it shows the previously selected time. the issue is your timepicker doesn't know which selection to show so it highlights the previous. you can see from the attached image, it highlights the time from the below text box instead of the textbox that fired the event.
here is the client side function i'm calling onclick:
now i need to set the focused time client-side. i have a page with multiple textboxes that share a timepicker. every time the timepicker pops, it shows the previously selected time. the issue is your timepicker doesn't know which selection to show so it highlights the previous. you can see from the attached image, it highlights the time from the below text box instead of the textbox that fired the event.
here is the client side function i'm calling onclick:
// called to handle the onclick and onfocus client side events for the texboxfunction ShowTimePopup(timePickerId, sender, e){ _currentTimePickerTextBox = sender; var timePicker = $find(timePickerId); var timeView = timePicker.get_timeView(); var selectedTime = timeView.getTime(); _currentTimePicker = timePicker; //timePicker.clear(); //timePicker.set_focusedDate(selectedTime); //timeView.setTime(selectedTime.getHours(), selectedTime.getMinutes(), null, null); var position = timePicker.getElementPosition(sender); timePicker.showTimePopup(position.x, position.y + sender.offsetHeight);}0
Hi Jeff,
The TimeView doesn't know the correct selected time, because you are showing it manually after cancelling the default showing event. Do you really have a reason to do it this way? A workaround is possible to implement, but first, here is a simple demo that works as expected.
Regards,
Dimo
the Telerik team
The TimeView doesn't know the correct selected time, because you are showing it manually after cancelling the default showing event. Do you really have a reason to do it this way? A workaround is possible to implement, but first, here is a simple demo that works as expected.
<%@ Page Language="C#" %><%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"<html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"><meta http-equiv="content-type" content="text/html;charset=utf-8" /><title>RadControls</title></head><body><form id="form1" runat="server"><asp:ScriptManager ID="ScriptManager1" runat="server" /><telerik:RadTimePicker ID="RadTimePicker1" runat="server" ShowPopupOnFocus="true" SharedTimeViewID="RadTimeView1"> <TimePopupButton Visible="false" /></telerik:RadTimePicker><telerik:RadTimePicker ID="RadTimePicker2" runat="server" ShowPopupOnFocus="true" SharedTimeViewID="RadTimeView1"> <TimePopupButton Visible="false" /></telerik:RadTimePicker><telerik:RadTimeView ID="RadTimeView1" runat="server" /></form></body></html>Regards,
Dimo
the Telerik team
Do you want to have your say when we set our development plans?
Do you want to know when a feature you care about is added or when a bug fixed?
Explore the
Telerik Public Issue Tracking
system and vote to affect the priority of the items
0
Jeff
Top achievements
Rank 1
answered on 08 Sep 2010, 07:27 AM
multiple RadTimePicker controls is not an option. we need to control the focus/selection client-side. you can see from the previously posted code we were trying different things (commented out) unsuccessfully. it would be nice if there was something along the lines of the RadDatePicker's method "set_selectedDate()".
0
Jeff,
Judging by your code snippet, you are using multiple RadTimePicker controls with a shared TimeView as well. If not, what is timePickerId in the Javascript code below? Can you provide a more extensive code snippet? What is the difference between my demo and your requirements?
function ShowTimePopup(timePickerId, sender, e)
{
_currentTimePickerTextBox = sender;
var timePicker = $find(timePickerId);
..........
}
Dimo
the Telerik team
Judging by your code snippet, you are using multiple RadTimePicker controls with a shared TimeView as well. If not, what is timePickerId in the Javascript code below? Can you provide a more extensive code snippet? What is the difference between my demo and your requirements?
function ShowTimePopup(timePickerId, sender, e)
{
_currentTimePickerTextBox = sender;
var timePicker = $find(timePickerId);
..........
}
Dimo
the Telerik team
Do you want to have your say when we set our development plans?
Do you want to know when a feature you care about is added or when a bug fixed?
Explore the
Telerik Public Issue Tracking
system and vote to affect the priority of the items
0
Jeff
Top achievements
Rank 1
answered on 08 Sep 2010, 04:39 PM
we have multiple text boxes that share one RadTimePicker control. the difference between your demo and our requirements is that the text boxes are dynamic. the reason you are seeing the timePickerId is because we dont like to hard-code control ids in javascript.
the code is too complex to post here so i'll try and paint a more clear picture:
imagine the below panel will have text box controls dynamically added to it
we wire up the client events of the text boxes server-side
client-side functions
the code is too complex to post here so i'll try and paint a more clear picture:
imagine the below panel will have text box controls dynamically added to it
<asp:panel id="controlsPanel" runat="server" /><rad:radtimepicker id="timePicker" runat="server" style="display:none;" > <clientevents ondateselected="TimeSelected" /></rad:radtimepicker>we wire up the client events of the text boxes server-side
timePickerTextBox.Attributes.Add("onclick", String.Format("ShowTimePopup('{0}',this,event);", timePicker.ClientID));timePickerTextBox.Attributes.Add("onblur", String.Format("ParseTime('{0}',this,event);", timePicker.ClientID));client-side functions
// called to handle the onclick and onfocus client side events for the texboxfunction ShowTimePopup(timePickerId, sender, e){ _currentTimePickerTextBox = sender; var timePicker = $find(timePickerId); var position = timePicker.getElementPosition(sender); timePicker.showTimePopup(position.x, position.y + sender.offsetHeight);}// used to set the text of the TextBox to the value of selected from the popupfunction TimeSelected(sender, args){ if (_currentTimePickerTextBox != null) _currentTimePickerTextBox.value = args.get_newValue();}// parse the time entered or selected by the userfunction ParseTime(timePickerId, textBox, e){ var timePicker = $find(timePickerId); if (timePicker != null && textBox.value != '') { var date = timePicker.get_dateInput().parseDate(textBox.value); var dateInput = timePicker.get_dateInput(); if (date == null) date = timePicker.get_selectedDate(); var formattedTime = dateInput.get_dateFormatInfo().FormatDate(date, dateInput.get_displayDateFormat()); textBox.value = formattedTime; }}0
Accepted
Jeff
Top achievements
Rank 1
answered on 08 Sep 2010, 11:57 PM
it took a little bit of work but we figured it out. (we were close to begin with). we grab the value from the text box and use your parseDate method on it. with the valid date object in hand we then call setTime() on the RadTimeView control and finally pop it up with the proper time selected.
function ShowTimePopup(timePickerId, sender, e){ _currentTimePickerTextBox = sender; var timePicker = $find(timePickerId); var timeView = timePicker.get_timeView(); if (_currentTimePickerTextBox.value == '') { timePicker.clear(); } else { var currentTime = timePicker.get_dateInput().parseDate(_currentTimePickerTextBox.value); timeView.setTime(currentTime.getHours(), currentTime.getMinutes(), currentTime.getSeconds(), currentTime); } var position = timePicker.getElementPosition(sender); timePicker.showTimePopup(position.x, position.y + sender.offsetHeight);}