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

Find RadGrid EditFormSettings form template inside controls using javascript

4 Answers 361 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Madhan
Top achievements
Rank 1
Madhan asked on 24 Feb 2012, 02:36 PM
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

4 Answers, 1 is accepted

Sort by
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
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
0
Tsvetina
Telerik team
answered on 01 Mar 2012, 02:02 PM
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
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.
Tags
Grid
Asked by
Madhan
Top achievements
Rank 1
Answers by
Shinu
Top achievements
Rank 2
Madhan
Top achievements
Rank 1
Tsvetina
Telerik team
Share this question
or