This is a migrated thread and some comments may be shown as answers.

Edit form Template programmatic access

3 Answers 104 Views
Grid
This is a migrated thread and some comments may be shown as answers.
twRoss
Top achievements
Rank 1
twRoss asked on 18 Mar 2011, 12:19 PM

Hi

 

 

Hi apologies if this is a silly question but i have searched the forums and help and can’t find an example

 

I’m using a radgrid with a EditFormType="Template" in the template i have a  date picker and 2 timepickers. I would like when i change the datepicker on the postback this updates the selected date of the time pickers.  I’ve found lots of examples of how to access the controls when ItemDataBound is called but how can i reference other editform controls programmatically once the editform is showing?

 

The grid is bound to a sql datasource and the updates and inserts are working perfectly bar the time picker bringing in todays date rather than the date set by the separate  date picker.

 


 

Many thanks in advance

Ross

3 Answers, 1 is accepted

Sort by
0
Princy
Top achievements
Rank 2
answered on 18 Mar 2011, 01:17 PM
Hello Ross,

ASPX:
<telerik:GridTemplateColumn>
    <EditItemTemplate>
        <telerik:RadDatePicker ID="RadDatePicker1" runat="server" OnSelectedDateChanged="RadDatePicker_SelectedDateChanged">
        </telerik:RadDatePicker>
    </EditItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn>
    <EditItemTemplate>
        <telerik:RadTimePicker ID="RadTimePicker1" runat="server">
        </telerik:RadTimePicker>
    </EditItemTemplate>
</telerik:GridTemplateColumn>

If you want to access the controls when grid is in edit mode, try the following code snippet.
C#:
protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
   {
      if (e.Item is GridEditFormItem && e.Item.IsInEditMode)//checking whether the grid is in edit mode
       {
           GridEditFormItem editItem= (GridEditFormItem)e.Item;
           RadDatePicker picker = (RadDatePicker)editItem.FindControl("RadDatePicker1");
           RadTimePicker timepicker = (RadTimePicker)editItem.FindControl("RadTimePicker1");
        }
     }

In order to access RadTimePicker on 'onselecteddatechanged' of RadDatePicker, try the following code.

C#:
protected void RadDatePicker_SelectedDateChanged(object sender, Telerik.Web.UI.Calendar.SelectedDateChangedEventArgs e)
   {
       RadDatePicker datepicker = (RadDatePicker)sender;
       GridEditFormItem editItem = (GridEditFormItem)datepicker.NamingContainer;
       RadTimePicker timepicker = (RadTimePicker)editItem.FindControl("RadTimePicker1");
   }

Thanks,
Princy.
0
twRoss
Top achievements
Rank 1
answered on 18 Mar 2011, 03:32 PM

Thanks this seems to work provided i don’t change the time in the timepicker but when i change the timepicker value the date then changes back to today with the time i selected.

Protected Sub RadDatePicker1_SelectedDateChanged(ByVal sender As Object, ByVal e As Telerik.Web.UI.Calendar.SelectedDateChangedEventArgs)
    Dim datepicker As RadDatePicker = DirectCast(sender, RadDatePicker)
    Dim editItem As GridEditFormItem = DirectCast(datepicker.NamingContainer, GridEditFormItem)
    Dim timepicker As RadTimePicker = DirectCast(editItem.FindControl("RadTimePicker1"), RadTimePicker)
    Dim timepicker2 As RadTimePicker = DirectCast(editItem.FindControl("RadTimePicker2"), RadTimePicker)
    timepicker.SelectedDate = datepicker.SelectedDate
    timepicker.FocusedDate = datepicker.SelectedDate
End Sub

<telerik:RadDatePicker ID="RadDatePicker1" Runat="server" 
    Culture="nl-NL" DbSelectedDate='<%# Bind("Date") %>' AutoPostBack="True" 
    onselecteddatechanged="RadDatePicker1_SelectedDateChanged">
    <Calendar UseColumnHeadersAsSelectors="False" UseRowHeadersAsSelectors="False" 
        ViewSelectorText="x">
    </Calendar>
    <DatePopupButton HoverImageUrl="" ImageUrl="" />
    <DateInput DateFormat="d-M-yyyy" DisplayDateFormat="d-M-yyyy" 
        AutoPostBack="True">
    </DateInput>
</telerik:RadDatePicker>
<telerik:RadTimePicker ID="RadTimePicker1" Runat="server" Culture="en-GB" 
    DbSelectedDate='<%# Bind("StartHour") %>'>
</telerik:RadTimePicker>
0
Princy
Top achievements
Rank 2
answered on 21 Mar 2011, 09:36 AM
Hello Ross,

If that the case then try following code snippet.
ASPX:
<telerik:GridTemplateColumn>
        <EditItemTemplate>
            <telerik:RadDatePicker ID="RadDatePicker1" runat="server">
            </telerik:RadDatePicker>
        </EditItemTemplate>
    </telerik:GridTemplateColumn>
    <telerik:GridTemplateColumn>
        <EditItemTemplate>
            <telerik:RadTimePicker ID="RadTimePicker1" runat="server" AutoPostBack="true" OnSelectedDateChanged="RadTimePicker1_SelectedDateChanged">
            </telerik:RadTimePicker>
        </EditItemTemplate>
    </telerik:GridTemplateColumn>

Protected Sub RadTimePicker1_SelectedDateChanged(sender As Object, e As Telerik.Web.UI.Calendar.SelectedDateChangedEventArgs)
    Dim timepicker As RadTimePicker = DirectCast(sender, RadTimePicker)
    Dim editItem As GridEditFormItem = DirectCast(timepicker.NamingContainer, GridEditFormItem)
    Dim datepicker As RadDatePicker = DirectCast(editItem.FindControl("RadDatePicker1"), RadDatePicker)
    datepicker.SelectedDate = System.DateTime.Now
End Sub

Thanks,
Princy.
Tags
Grid
Asked by
twRoss
Top achievements
Rank 1
Answers by
Princy
Top achievements
Rank 2
twRoss
Top achievements
Rank 1
Share this question
or