In a older version of asp controls, I create a simple validation on the OnItemCreated event of radgrid and works great, but in the latest version of asp controls every time I click edit or create new record throws exception"Microsoft JScript: Sys.WebForms.PageRequestManagerServerErrorException: Editor cannot be initialized for column: [Name column]". I've the same code in several places in my website.
here is my code:
.cs
protected void gridFases_ItemCreated(object sender, GridItemEventArgs e)
{
if (e.Item is GridEditableItem && e.Item.IsInEditMode)
{
GridEditableItem item = e.Item as GridEditableItem;
GridTextBoxColumnEditor editor = (GridTextBoxColumnEditor)item.EditManager.GetColumnEditor("Nombre");
TableCell cell = (TableCell)editor.TextBoxControl.Parent;
RequiredFieldValidator validator = new RequiredFieldValidator();
editor.TextBoxControl.ID = "Nombre";
validator.ControlToValidate = editor.TextBoxControl.ID;
validator.ErrorMessage = "El nombre de la fase es obligatorio.";
cell.Controls.Add(validator);
}
}
.aspx
<telerik:RadGrid ID="gridFases" runat="server"
OnNeedDataSource="gridFases_NeedDataSource"
OnInsertCommand="gridFases_InsertCommand"
OnUpdateCommand="gridFases_UpdateCommand"
OnItemCreated="gridFases_ItemCreated">
<MasterTableView CommandItemDisplay="Top" AutoGenerateColumns="false" DataKeyNames="Id" InsertItemPageIndexAction="ShowItemOnCurrentPage" >
<NoRecordsTemplate>
<div>
No hay fases asociadas
</div>
</NoRecordsTemplate>
<CommandItemSettings AddNewRecordText="Nueva fase" RefreshText="Refrescar" ShowRefreshButton="false" />
<EditFormSettings>
<EditColumn EditText="Guardar" CancelText="Cancelar" UpdateText="Actualizar" InsertText="Guardar"></EditColumn>
</EditFormSettings>
<SortExpressions>
<telerik:GridSortExpression FieldName="OrdenEjecucion" SortOrder="Ascending" />
</SortExpressions>
<Columns>
<telerik:GridEditCommandColumn ButtonType="ImageButton" />
<telerik:GridBoundColumn DataField="Id" HeaderText="Id" UniqueName="Id" Visible="false" ReadOnly="true" />
<telerik:GridTemplateColumn DataField="OrdenEjecucion" HeaderText="Orden de ejecución" UniqueName="OrdenEjecucion">
<InsertItemTemplate>
<telerik:RadNumericTextBox ID="txtOrdenEjecucion" MinValue="1" MaxValue="100" runat="server" ShowSpinButtons="True" Value="1">
<NumberFormat AllowRounding="True" KeepNotRoundedValue="False" DecimalDigits="0"/>
</telerik:RadNumericTextBox>
</InsertItemTemplate>
<EditItemTemplate>
<telerik:RadNumericTextBox ID="txtOrdenEjecucion" MinValue="1" MaxValue="100" runat="server" ShowSpinButtons="True" Value='<%#Convert.ToDecimal( Eval("OrdenEjecucion")) %>'>
<NumberFormat AllowRounding="True" KeepNotRoundedValue="False" DecimalDigits="0"/>
</telerik:RadNumericTextBox>
</EditItemTemplate>
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "OrdenEjecucion")%>
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridBoundColumn DataField="Nombre" HeaderText="Nombre de la fase" UniqueName="Nombre" Visible="true"/>
<telerik:GridCheckBoxColumn DataField="Obligatorio" HeaderText="¿Fase obligatoria?" UniqueName="Obligatorio" Visible="true"/>
</Columns>
</MasterTableView>
<ValidationSettings EnableValidation="true" />
</telerik:RadGrid>