How to find a RadGrid EditFormSettings form template inside control names using javascript
i have tried like this but it not working :(
var masterTable = $find("<%=rgResting.ClientID %>").get_masterTableView();
var Groupcombo = masterTable.get_dataItems()[0].findControl('ddlGroup');
In above code rgResting is my grid name and ddlGroup is my rad combobox name which i have added in my form template.
Thanks
Madhan
i have tried like this but it not working :(
var masterTable = $find("<%=rgResting.ClientID %>").get_masterTableView();
var Groupcombo = masterTable.get_dataItems()[0].findControl('ddlGroup');
In above code rgResting is my grid name and ddlGroup is my rad combobox name which i have added in my form template.
Thanks
Madhan
4 Answers, 1 is accepted
0

Shinu
Top achievements
Rank 2
answered on 27 Feb 2012, 05:21 AM
Hello Madhan,
Check the following code library.
Accessing server controls in a grid template on the client
-Shinu
Check the following code library.
Accessing server controls in a grid template on the client
-Shinu
0

Madhan
Top achievements
Rank 1
answered on 27 Feb 2012, 10:33 AM
Hi Shinu,
Thanks for reply but Still i am facing same problem, i am not able to getting the id of my control. Please check my Below code.
<telerik:RadGrid runat="server" ID="rgResting" GridLines="None" AutoGenerateColumns="False"
Skin="Office2007" Style="border: none; outline: 0" AllowAutomaticInserts="True"
AllowAutomaticUpdates="false" AllowSorting="true" Height="154px"
Width="920px" OnNeedDataSource="rgResting_NeedDataSource">
<ClientSettings Scrolling-AllowScroll="true">
<Scrolling AllowScroll="True" UseStaticHeaders="True" SaveScrollPosition="True">
</Scrolling>
<Selecting AllowRowSelect="True" />
<ClientEvents OnPopUpShowing="PopUpShowing" />
</ClientSettings>
<MasterTableView DataKeyNames="AppointmentID" EditMode="PopUp"
CommandItemDisplay="Bottom" CommandItemSettings-AddNewRecordText="Add New Appointment"
CommandItemSettings-ShowRefreshButton="false">
<Columns>
<telerik:GridBoundColumn UniqueName="AppointmentID" DataField="AppointmentID" HeaderText="AppointmentID"
SortExpression="AppointmentID" Visible="False" />
<telerik:GridBoundColumn UniqueName="Subject" DataField="Subject" HeaderText="Subject"
SortExpression="Subject" Visible="False" />
<telerik:GridTemplateColumn HeaderText="Patient" HeaderStyle-Width="50%">
<ItemTemplate>
<asp:Label runat="server" ID="lblPatient"></asp:Label>
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn HeaderText="Expected Appointment Date">
<ItemTemplate>
<asp:Label runat="Server" ID="lblAppointmentDate"></asp:Label>
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn HeaderText="Priority">
<ItemTemplate>
<asp:Label runat="Server" ID="lblPriority"></asp:Label>
</ItemTemplate>
</telerik:GridTemplateColumn>
</Columns>
<EditFormSettings InsertCaption="Add New Appointment" CaptionDataField="AppointmentID"
PopUpSettings-Modal="true" EditFormType="Template" PopUpSettings-Width="714px" PopUpSettings-Height="826px" >
<FormTemplate>
<div class="appt_PMC_rw1">
<div class="appt_pmc_lable">
<asp:Label ID="lblGroup" runat="server" resourcekey="lblGroup"></asp:Label>
</div>
<div class="appt_ins-ads_tbox">
<telerik:RadComboBox ID="ddlGroup" runat="server" Width="170%" DataTextField="GroupName"
DataValueField="GroupId" AutoPostBack="true" Skin="MyBlueSkin" EnableEmbeddedSkins="false">
</telerik:RadComboBox>
</div>
</div>
</FormTemplate>
</EditFormSettings>
</MasterTableView>
</telerik:RadGrid>
In above i want to get my RadComboBox 'ddlGroup' Controlid in Client Side.
Thanks,
Madhan
Thanks for reply but Still i am facing same problem, i am not able to getting the id of my control. Please check my Below code.
<telerik:RadGrid runat="server" ID="rgResting" GridLines="None" AutoGenerateColumns="False"
Skin="Office2007" Style="border: none; outline: 0" AllowAutomaticInserts="True"
AllowAutomaticUpdates="false" AllowSorting="true" Height="154px"
Width="920px" OnNeedDataSource="rgResting_NeedDataSource">
<ClientSettings Scrolling-AllowScroll="true">
<Scrolling AllowScroll="True" UseStaticHeaders="True" SaveScrollPosition="True">
</Scrolling>
<Selecting AllowRowSelect="True" />
<ClientEvents OnPopUpShowing="PopUpShowing" />
</ClientSettings>
<MasterTableView DataKeyNames="AppointmentID" EditMode="PopUp"
CommandItemDisplay="Bottom" CommandItemSettings-AddNewRecordText="Add New Appointment"
CommandItemSettings-ShowRefreshButton="false">
<Columns>
<telerik:GridBoundColumn UniqueName="AppointmentID" DataField="AppointmentID" HeaderText="AppointmentID"
SortExpression="AppointmentID" Visible="False" />
<telerik:GridBoundColumn UniqueName="Subject" DataField="Subject" HeaderText="Subject"
SortExpression="Subject" Visible="False" />
<telerik:GridTemplateColumn HeaderText="Patient" HeaderStyle-Width="50%">
<ItemTemplate>
<asp:Label runat="server" ID="lblPatient"></asp:Label>
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn HeaderText="Expected Appointment Date">
<ItemTemplate>
<asp:Label runat="Server" ID="lblAppointmentDate"></asp:Label>
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn HeaderText="Priority">
<ItemTemplate>
<asp:Label runat="Server" ID="lblPriority"></asp:Label>
</ItemTemplate>
</telerik:GridTemplateColumn>
</Columns>
<EditFormSettings InsertCaption="Add New Appointment" CaptionDataField="AppointmentID"
PopUpSettings-Modal="true" EditFormType="Template" PopUpSettings-Width="714px" PopUpSettings-Height="826px" >
<FormTemplate>
<div class="appt_PMC_rw1">
<div class="appt_pmc_lable">
<asp:Label ID="lblGroup" runat="server" resourcekey="lblGroup"></asp:Label>
</div>
<div class="appt_ins-ads_tbox">
<telerik:RadComboBox ID="ddlGroup" runat="server" Width="170%" DataTextField="GroupName"
DataValueField="GroupId" AutoPostBack="true" Skin="MyBlueSkin" EnableEmbeddedSkins="false">
</telerik:RadComboBox>
</div>
</div>
</FormTemplate>
</EditFormSettings>
</MasterTableView>
</telerik:RadGrid>
In above i want to get my RadComboBox 'ddlGroup' Controlid in Client Side.
Thanks,
Madhan
0
Hi Madhan,
You could try the following:
1) Use the get_editItems() method of the GridTableView client object to access the edited item(s).
2) If the edit item is only one, use masterTable.get_editItems()[0].get_editFormItem() to access the edit form.
3) Once you access the edit form, you could find the combo element using jQuery, for example by class name.
4) When you have access to the item, take its id attribute and use it in a $find(id) method to access the client object of the combo.
All the best,
Tsvetina
the Telerik team
You could try the following:
1) Use the get_editItems() method of the GridTableView client object to access the edited item(s).
2) If the edit item is only one, use masterTable.get_editItems()[0].get_editFormItem() to access the edit form.
3) Once you access the edit form, you could find the combo element using jQuery, for example by class name.
4) When you have access to the item, take its id attribute and use it in a $find(id) method to access the client object of the combo.
All the best,
Tsvetina
the Telerik team
If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to their blog feed now.
0

Madhan
Top achievements
Rank 1
answered on 03 Mar 2012, 11:14 AM
Hi Shinu,
I have done as per given link, the java function is retuning nothing. Please check my below code
Inside my edit form setting i have registered my controls
<EditFormSettings>
<FormTemplate>
<telerik:RadScriptBlock ID="rsb_RegisterElement" runat="server">
<script type="text/javascript">
registeredElements.push('<%# Container.FindControl("ddlGroup").ClientID %>');
registeredElements.push('<%# Container.FindControl("ddlName").ClientID %>');
</script>
</telerik:RadScriptBlock>
</FormTemplate>
</EditFormSettings>
Below is my java script:
<telerik:RadScriptBlock ID="RadScriptBlock1" runat="server">
<script type="text/javascript">
//global DOM ID registry. filled up by scripts rendered from templates.
var registeredElements = [];
//looks for an element that has been registered with the global array
//requires that we emit a registration script block for each server control
function GetRegisteredServerElement(serverID) {
var clientID = "";
for (var i = 0; i < registeredElements.length; i++) {
clientID = registeredElements[i];
if (clientID.indexOf(serverID) >= 0)
break;
}
return $get(clientID);
}
function SearchResult() {
var serverID = "ddlGroup";
var Groupcombo = GetRegisteredServerElement(serverID)
alert(Groupcombo);
}
</script>
</telerik:RadScriptBlock>
In Groupcombo i am getting blank.... in that alert message it show nothing..
Thanks,
Madhan.
I have done as per given link, the java function is retuning nothing. Please check my below code
Inside my edit form setting i have registered my controls
<EditFormSettings>
<FormTemplate>
<telerik:RadScriptBlock ID="rsb_RegisterElement" runat="server">
<script type="text/javascript">
registeredElements.push('<%# Container.FindControl("ddlGroup").ClientID %>');
registeredElements.push('<%# Container.FindControl("ddlName").ClientID %>');
</script>
</telerik:RadScriptBlock>
</FormTemplate>
</EditFormSettings>
Below is my java script:
<telerik:RadScriptBlock ID="RadScriptBlock1" runat="server">
<script type="text/javascript">
//global DOM ID registry. filled up by scripts rendered from templates.
var registeredElements = [];
//looks for an element that has been registered with the global array
//requires that we emit a registration script block for each server control
function GetRegisteredServerElement(serverID) {
var clientID = "";
for (var i = 0; i < registeredElements.length; i++) {
clientID = registeredElements[i];
if (clientID.indexOf(serverID) >= 0)
break;
}
return $get(clientID);
}
function SearchResult() {
var serverID = "ddlGroup";
var Groupcombo = GetRegisteredServerElement(serverID)
alert(Groupcombo);
}
</script>
</telerik:RadScriptBlock>
In Groupcombo i am getting blank.... in that alert message it show nothing..
Thanks,
Madhan.