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 !!!!