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

Cascading RadComboBox inside of RadGrid

3 Answers 136 Views
Grid
This is a migrated thread and some comments may be shown as answers.
IMF
Top achievements
Rank 1
IMF asked on 24 Apr 2015, 11:52 AM

Hello,

I have a radgrid with Batch Edit Mode activated, i have 5 columns: two with one comboBox and three with textBox. I need that one of the radComboBox bind the datasource of the other one attending at the value of the first radcomboBox:

 

ROW [ txtEtiqueta    TextBoxFormato    TextBoxAncho      RadComboBoxAlineacion       RadComboBoxMostrarTipo ]

 

This is the structure:

 

<telerik:RadGrid ID="RadGridPropiedadesMostrar" runat="server"
                                    Height="245px" Width="99%" Culture="es-ES" Visible="true"
                                    OnNeedDataSource="RadGridPropiedadesMostrar_NeedDataSource"
                                    OnBatchEditCommand="RadGridPropiedadesMostrar_BatchEditCommand"
                                    OnItemDataBound="RadGridPropiedadesMostrar_OnItemDataBound"
                                    OnPreRender="RadGridPropiedadesMostrar_PreRender"
                                    HeaderStyle-Font-Size="Small" HeaderStyle-ForeColor="Black"
                                    MasterTableView-NoMasterRecordsText="Sin registros">
                                    <ClientSettings>
                                        <Scrolling AllowScroll="True" />
                                        <Resizing ResizeGridOnColumnResize="false" AllowColumnResize="false" AllowResizeToFit="true" EnableRealTimeResize="true"></Resizing>
                                        <Selecting AllowRowSelect="true" />
                                    </ClientSettings>
                                    <MasterTableView EditMode="Batch" AutoGenerateColumns="False" ShowHeadersWhenNoRecords="true">
                                        <BatchEditingSettings EditType="Cell" OpenEditingEvent="Click" />
                                        <Columns>
                                            <telerik:GridBoundColumn UniqueName="CODIGOMOSTRAR" DataField="CODIGOMOSTRAR" HeaderText="CODIGOMOSTRAR" Visible="false" />
                                            <telerik:GridBoundColumn UniqueName="CODIGOINFORME" DataField="CODIGOINFORME" HeaderText="CODIGOINFORME" Visible="false" />
                                            <telerik:GridBoundColumn UniqueName="MOS_NOMBRE" DataField="MOS_NOMBRE" HeaderText="Nombre" Visible="false">
                                                <ColumnValidationSettings EnableRequiredFieldValidation="true">
                                                    <RequiredFieldValidator ForeColor="Red" Text="*This field is required" Display="Dynamic">
                                                    </RequiredFieldValidator>
                                                </ColumnValidationSettings>
                                            </telerik:GridBoundColumn>
                                            <telerik:GridTemplateColumn UniqueName="MOS_ETIQUETA" DataField="MOS_ETIQUETA" HeaderText="Campo" Visible="true" ItemStyle-Width="35%">
 
                                                <ItemTemplate>
                                                    <%#DataBinder.Eval(Container.DataItem, "MOS_ETIQUETA")%>
                                                </ItemTemplate>
 
                                                <EditItemTemplate>
                                                    <telerik:RadTextBox ID="txtEtiqueta" runat="server" Width="85%"></telerik:RadTextBox>
                                                </EditItemTemplate>
                                            </telerik:GridTemplateColumn>
                                            <telerik:GridBoundColumn UniqueName="MOS_VISIBLE" DataField="MOS_VISIBLE" HeaderText="Visible" Visible="false" />
                                            <telerik:GridTemplateColumn UniqueName="MOS_FORMATO" DataField="MOS_FORMATO" HeaderText="Formato" Visible="true" ItemStyle-Width="15%">
                                                <ItemTemplate>
                                                    <%#DataBinder.Eval(Container.DataItem, "MOS_FORMATO")%>
                                                </ItemTemplate>
                                                <EditItemTemplate>
                                                    <telerik:RadTextBox ID="txtFormato" runat="server" Width="85%"></telerik:RadTextBox>
                                                </EditItemTemplate>
                                            </telerik:GridTemplateColumn>
                                            <telerik:GridTemplateColumn UniqueName="MOS_ANCHO" DataField="MOS_ANCHO" HeaderText="Ancho" Visible="true" ItemStyle-Width="15%">
                                                <ItemTemplate>
                                                    <%#DataBinder.Eval(Container.DataItem, "MOS_ANCHO")%>
                                                </ItemTemplate>
                                                <EditItemTemplate>
                                                    <telerik:RadTextBox ID="txtAncho" runat="server" Width="85%"></telerik:RadTextBox>
                                                </EditItemTemplate>
                                            </telerik:GridTemplateColumn>
                                            <telerik:GridTemplateColumn UniqueName="MOS_AINEACION" DataField="MOS_AINEACION" HeaderText="Alineación" Visible="true" ItemStyle-Width="15%">
                                                <ItemTemplate>
                                                    <%#DataBinder.Eval(Container.DataItem, "MOS_AINEACION")%>
                                                </ItemTemplate>
                                                <EditItemTemplate>
                                                    <telerik:RadComboBox runat="server" ID="RadComboBoxAlineacion" HighlightTemplatedItems="true" Width="85%">
                                                    </telerik:RadComboBox>
                                                </EditItemTemplate>
                                            </telerik:GridTemplateColumn>
                                            <telerik:GridTemplateColumn UniqueName="MOS_TIPO" DataField="MOS_TIPO" HeaderText="Tipo" Visible="true" ItemStyle-Width="15%">
                                                <ItemTemplate>
                                                    <%#DataBinder.Eval(Container.DataItem, "MOS_TIPO")%>
                                                </ItemTemplate>
                                                <EditItemTemplate>
                                                    <telerik:RadComboBox runat="server" ID="RadComboBoxMostrarTipo" HighlightTemplatedItems="true" Width="85%">
                                                    </telerik:RadComboBox>
                                                </EditItemTemplate>
                                            </telerik:GridTemplateColumn>
                                        </Columns>
                                    </MasterTableView>
                                </telerik:RadGrid>

 

I create the datasource of the RadComboBoxMostrarTipo in PRERENDER like this:

 

protected void RadGridPropiedadesMostrar_PreRender(object sender, EventArgs e)
{
    RadGridPropiedadesMostrar.Rebind();
 
    RadComboBox combo2 = (RadGridPropiedadesMostrar.MasterTableView.GetBatchEditorContainer("MOS_TIPO") as Panel).FindControl("RadComboBoxMostrarTipo") as RadComboBox;
 
    DataTable table2 = new DataTable();
    table2.Columns.Add("MOS_TIPO", typeof(int));
    table2.Columns.Add("TIPO", typeof(string));
    string[] tipos = {"Texto", "Entero", "Doble", "Fecha", "Booleano" };
     
    DataRow row2 = null;
    for (int i = 0; i < tipos.Length; i++)
    {
        row2 = table2.NewRow();
        row2["MOS_TIPO"] = i.ToString();
        row2["TIPO"] = tipos[i];
 
        table2.Rows.Add(row2);
    }
    combo2.DataTextField = "TIPO";
    combo2.DataValueField = "MOS_TIPO";
    combo2.DataSource = table2;
    combo2.DataBind();
}

 

I need to bind the RadComboBoxAlineacion  depending of the data loaded in RadComboBoxMostrarTipo when i load each row

 

Any idea? Thanks!

3 Answers, 1 is accepted

Sort by
0
Pavlina
Telerik team
answered on 28 Apr 2015, 02:07 PM
Hi,

The code library below demonstrates how to implement related comboboxes in grid with batch edit:
http://www.telerik.com/support/code-library/batch-editing-extensions---related-radcomboboxes-and-validation

Regards,
Pavlina
Telerik
 

See What's Next in App Development. Register for TelerikNEXT.

 
0
IMF
Top achievements
Rank 1
answered on 29 Apr 2015, 07:59 AM
How can i include the batchManagerExtensions.js and batchManagerExtensions.css files in my project??
0
Pavlina
Telerik team
answered on 04 May 2015, 08:18 AM
Hi,

In the second post of the code library is shown how to include these files in your project.

Regards,
Pavlina
Telerik
 

See What's Next in App Development. Register for TelerikNEXT.

 
Tags
Grid
Asked by
IMF
Top achievements
Rank 1
Answers by
Pavlina
Telerik team
IMF
Top achievements
Rank 1
Share this question
or