Hi,
I explain my situation.
I have a grid with many template columns.
One template column (uniquename: "ValoreTextBoxComboBox") has two controls a label ("LabelDescrizioneI") binded and a radcombobox ("RadComboBoxValore") not binded.
Then programmatically "OnItemDatabound " event of the radgrid i decided which control is visible and in case this control is the radcombobox i bind it.
Everything works until i click "Edit" on the radgrid, the combobox lost everithing ( data and selectedvalue) .
The c# code:
I really don't understand why the radcombobox lost everithing when i click the Edit column. I used the same tecniche to fill the combo if " IsInEditMode" or if (e.Item is GridDataItem).
Thanks everybody !!!!
I explain my situation.
I have a grid with many template columns.
One template column (uniquename: "ValoreTextBoxComboBox") has two controls a label ("LabelDescrizioneI") binded and a radcombobox ("RadComboBoxValore") not binded.
Then programmatically "OnItemDatabound " event of the radgrid i decided which control is visible and in case this control is the radcombobox i bind it.
Everything works until i click "Edit" on the radgrid, the combobox lost everithing ( data and selectedvalue) .
<telerik:RadGrid ID="rdgParamDatiAziendali" AllowPaging="true" DataSourceID="edsGridParam" runat="server" OnUpdateCommand="rdgParamDatiAziendalie_UpdateCommand" GridLines="None" Width="97%" AllowSorting="true" PageSize="20" OnItemDataBound ="rdgParamDatiAziendali_ItemDataBound"> <MasterTableView AutoGenerateColumns="False" EditMode="InPlace" DataKeyNames="IdConfigurazioneProgrammaCultura" OverrideDataSourceControlSorting="true" TableLayout="Auto"> <CommandItemTemplate> </CommandItemTemplate> <Columns> <telerik:GridEditCommandColumn ButtonType="ImageButton" CancelImageUrl="~/Images/ImagesGrid/Cancel.gif" EditImageUrl="~/Images/ImagesGrid/Edit.gif" UpdateImageUrl="~/Images/ImagesGrid/Update.gif" InsertImageUrl="~/Images/ImagesGrid/Update.gif" UniqueName="EditCommandColumn" ItemStyle-Width="50px" HeaderStyle-Width="50px" /> <telerik:GridBoundColumn DataField="IdCultura" DataType="System.Int64" HeaderText="IdCultura" SortExpression="IdCultura" UniqueName="IdCultura" ReadOnly="true" Visible="false"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="IdConfigurazioneProgrammaCultura" DataType="System.Int64" HeaderText="Id" SortExpression="IdConfigurazioneProgrammaCultura" UniqueName="IdConfigurazioneProgrammaCultura" Display="false"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Descrizione" DataType="System.String" HeaderText="Descrizione" SortExpression="Descrizione" UniqueName="Descrizione" ReadOnly="true" HeaderStyle-Width="405px" ItemStyle-Height="13px"> </telerik:GridBoundColumn> <mwc:GridBoundColumn DataField="Id" DataType="System.Int64" HeaderText="Id" SortExpression="Id" UniqueName="Id" Display="false"></mwc:GridBoundColumn> <mwc:GridBoundColumn DataField="IdParametroAzienda" DataType="System.Int64" HeaderText="IdParametroAzienda" SortExpression="IdParametroAzienda" UniqueName="IdParametroAzienda" Display="false"> </mwc:GridBoundColumn> <telerik:GridTemplateColumn Resizable="true" HeaderStyle-Width="275px" UniqueName="ValoreTextBoxComboBox" SortExpression="ValoreTextBoxComboBox" ItemStyle-Height="13px"> <HeaderTemplate> <mwc:Label ID="LabelUnificata" runat="server" LabelResources="valore_simi" ParentType="RadGrid" Height="13px"></mwc:Label> </HeaderTemplate> <ItemTemplate> <mwc:Label ID="LabelDescrizioneI" runat="server" Text='<%# Bind("DescrizioneTextBox") %> ' Width="270px" ReadOnly="true" ParentType="RadGrid" Height="13px"></mwc:Label> <telerik:RadComboBox ID="RadComboBoxValore" runat="server" Width="270px" AutoPostBack="false" ParentType="RadGrid" ReadOnly="true" Height="13px"> </telerik:RadComboBox> <mwc:HiddenField ID="HiddenFieldQueryRiga" runat="server" Value='<%# Bind("QueryComboBox") %>' /> <mwc:HiddenField ID="HiddenFieldTipoControllo" runat="server" Value='<%# Bind("IdTipoParametro") %>' /> <mwc:HiddenField ID="HiddenFieldSelectedValueRadComboBoxValore" runat="server" Value='<%# Bind("ValoreComboBox") %>' /> </ItemTemplate> <EditItemTemplate> <mwc:TextBox ID="TextBoxDescrizione" runat="server" Width="300px" Text='<%# Bind("DescrizioneTextBox") %>'></mwc:TextBox> <telerik:RadComboBox ID="RadComboBoxValore" runat="server" Width="300px" AutoPostBack="false"> </telerik:RadComboBox> <mwc:HiddenField ID="HiddenFieldQueryRiga" runat="server" Value='<%# Bind("QueryComboBox") %>' /> <mwc:HiddenField ID="HiddenFieldTipoControllo" runat="server" Value='<%# Bind("IdTipoParametro") %>' /> <mwc:HiddenField ID="HiddenFieldSelectedValueRadComboBoxValore" runat="server" Value='<%# Bind("ValoreComboBox") %>' /> </EditItemTemplate> </telerik:GridTemplateColumn> <mwc:GridTemplateColumn Resizable="false" HeaderStyle-Width="60px" UniqueName="Abilitato" ItemStyle-Height="13px"> <HeaderTemplate> <mwc:Label ID="LabelAbilitato" runat="server" LabelResources="abilitato_simi" ParentType="RadGrid" Width="60px" Height="13px"></mwc:Label> </HeaderTemplate> <ItemTemplate> <div style="text-align: center;"> <mwc:CheckBox ID="CheckBoxAbilitatoI" runat="server" Checked='<%# Bind("Abilitato") %>' Enabled="false" Width="55px" Height="13px" /> </div> </ItemTemplate> <EditItemTemplate> <mwc:CheckBox ID="CheckBoxAbilitatoE" runat="server" Checked='<%# Bind("Abilitato") %>' Width="55px" Height="13px" /> </EditItemTemplate> </mwc:GridTemplateColumn> </Columns> </MasterTableView> </telerik:RadGrid>The c# code:
protected void rdgParamDatiAziendali_ItemDataBound(object source, GridItemEventArgs e) { GridDataItem dataBoundItem = e.Item as GridDataItem; if (!(e.Item is GridDataInsertItem) && e.Item.IsInEditMode) //item is about to be edit { long tipoParametro = long.Parse(((HiddenField)e.Item.FindControl("HiddenFieldTipoControllo")).Value); if (tipoParametro == (int)CommonParameters.TipoParamDatiAziendali.CheckBox_ComboBox || tipoParametro == (int)CommonParameters.TipoParamDatiAziendali.ComboBox) //RadComboBoxValore load values and selectedvalue ((RadComboBox)e.Item.FindControl("RadComboBoxValore")).DataSource = Utility.ValoriComboBox(((HiddenField)e.Item.FindControl("HiddenFieldQueryRiga")).Value, long.Parse(hdfIdCultura.Value)); ((RadComboBox)e.Item.FindControl("RadComboBoxValore")).DataValueField = "Valore"; ((RadComboBox)e.Item.FindControl("RadComboBoxValore")).DataTextField = "Descrizione"; ((RadComboBox)e.Item.FindControl("RadComboBoxValore")).SelectedValue = ((HiddenField)e.Item.FindControl("HiddenFieldSelectedValueRadComboBoxValore")).Value; try { ((RadComboBox)e.Item.FindControl("RadComboBoxValore")).DataBind(); } catch (ArgumentOutOfRangeException exc) { ErrorMessage.generatePopUpError(RadWindowErrori, ((SessionInformation)Session["sessionData"]).IdCultura, exc, null); } try { switch (tipoParametro) { case (int)CommonParameters.TipoParamDatiAziendali.CheckBox : //CheckBox ((RadComboBox)e.Item.FindControl("RadComboBoxValore")).Visible = false; ((TextBox)e.Item.FindControl("TextBoxDescrizione")).Visible = false; ((CheckBox)e.Item.FindControl("CheckBoxAbilitatoE")).Visible = true; break; case (int)CommonParameters.TipoParamDatiAziendali.CheckBox_ComboBox : //CheckBox-ComboBox ((RadComboBox)e.Item.FindControl("RadComboBoxValore")).Visible = true; ((TextBox)e.Item.FindControl("TextBoxDescrizione")).Visible = false; ((CheckBox)e.Item.FindControl("CheckBoxAbilitatoE")).Visible = true; break; case (int)CommonParameters.TipoParamDatiAziendali.TextBox : //TextBox ((RadComboBox)e.Item.FindControl("RadComboBoxValore")).Visible = false; ((TextBox)e.Item.FindControl("TextBoxDescrizione")).Visible = true; ((CheckBox)e.Item.FindControl("CheckBoxAbilitatoE")).Visible = false; break; case (int)CommonParameters.TipoParamDatiAziendali.ComboBox : //ComboBox ((RadComboBox)e.Item.FindControl("RadComboBoxValore")).Visible = true; ((TextBox)e.Item.FindControl("TextBoxDescrizione")).Visible = false; ((CheckBox)e.Item.FindControl("CheckBoxAbilitatoE")).Visible = false; break; case (int)CommonParameters.TipoParamDatiAziendali.CheckBox_TextBox : //CheckBox-TextBox ((RadComboBox)e.Item.FindControl("RadComboBoxValore")).Visible = false; ((TextBox)e.Item.FindControl("TextBoxDescrizione")).Visible = true; ((CheckBox)e.Item.FindControl("CheckBoxAbilitatoE")).Visible = true; break; } } catch (NullReferenceException) { } } else if (e.Item is GridDataItem) { //RadComboBoxValore load values and selectedvalue if (!String.IsNullOrEmpty(((HiddenField)e.Item.FindControl("HiddenFieldQueryRiga")).Value) && (((HiddenField)e.Item.FindControl("HiddenFieldTipoControllo")).Value == "4")) { ((RadComboBox)e.Item.FindControl("RadComboBoxValore")).DataSource = Utility.ValoriComboBox(((HiddenField)e.Item.FindControl("HiddenFieldQueryRiga")).Value, 0); ((RadComboBox)e.Item.FindControl("RadComboBoxValore")).DataValueField = "Key"; ((RadComboBox)e.Item.FindControl("RadComboBoxValore")).DataTextField = "Value"; ((RadComboBox)e.Item.FindControl("RadComboBoxValore")).SelectedValue = ((HiddenField)e.Item.FindControl("HiddenFieldSelectedValueRadComboBoxValore")).Value; ((Label)e.Item.FindControl("LabelDescrizioneI")).Visible = false; ((RadComboBox)e.Item.FindControl("RadComboBoxValore")).DataBind(); } else { ((RadComboBox)e.Item.FindControl("RadComboBoxValore")).Visible = false; } } }I really don't understand why the radcombobox lost everithing when i click the Edit column. I used the same tecniche to fill the combo if " IsInEditMode" or if (e.Item is GridDataItem).
Thanks everybody !!!!