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!