Hello all,
I have a Radgrid with a DeleteColumn. When I click in delete image the row dessapear but when I refresh the grid the row appear again.
I try with Datasource delete query and code behind, but OnDeleteCommand never triggered.
Code:
<
telerik:RadGrid
ID
=
"RGVEmpresasEnCentro"
runat
=
"server"
Width
=
"500px"
RenderMode
=
"Lightweight"
GridLines
=
"None"
AllowAutomaticDeletes
=
"true"
AllowAutomaticInserts
=
"true"
PageSize
=
"10"
OnPreRender
=
"RGVEmpresasEnCentro_PreRender"
OnBatchEditCommand
=
"RGVEmpresasEnCentro_BatchEditCommand"
OnDeleteCommand
=
"RGVEmpresasEnCentro_DeleteCommand"
AllowAutomaticUpdates
=
"true"
AllowPaging
=
"true"
AutoGenerateColumns
=
"False"
DataSourceID
=
"SDSEmpresasEnCentro"
Skin
=
"WebBlue"
>
<
MasterTableView
CommandItemDisplay
=
"TopAndBottom"
DataKeyNames
=
"id"
DataSourceID
=
"SDSEmpresasEnCentro"
HorizontalAlign
=
"NotSet"
EditMode
=
"Batch"
AutoGenerateColumns
=
"False"
CommandItemSettings-AddNewRecordText
=
"Insertar centro"
CommandItemSettings-SaveChangesText
=
"Guardar"
CommandItemSettings-CancelChangesText
=
"Cancelar"
CommandItemSettings-RefreshText
=
"Refrescar"
NoMasterRecordsText
=
"No hay empresas en el centro"
NoDetailRecordsText
=
"No hay empresas en el centro"
>
<
BatchEditingSettings
EditType
=
"Cell"
/>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"id"
Visible
=
"false"
DataType
=
"System.Int32"
HeaderText
=
"id"
SortExpression
=
"id"
UniqueName
=
"id"
ReadOnly
=
"true"
/>
<
telerik:GridBoundColumn
DataField
=
"Empresa"
HeaderText
=
"Empresa"
SortExpression
=
"Empresa"
UniqueName
=
"Empresa"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Numero"
HeaderText
=
"Numero"
SortExpression
=
"Numero"
UniqueName
=
"Numero"
>
</
telerik:GridBoundColumn
>
<
telerik:GridDateTimeColumn
DataField
=
"Desde"
HeaderText
=
"Desde"
SortExpression
=
"Desde"
UniqueName
=
"Desde"
PickerType
=
"DatePicker"
DataFormatString
=
"{0:dd/MM/yyyy}"
>
</
telerik:GridDateTimeColumn
>
<
telerik:GridDateTimeColumn
DataField
=
"HastaEl"
HeaderText
=
"Hasta el"
SortExpression
=
"HastaEl"
UniqueName
=
"HastaEl"
PickerType
=
"DatePicker"
DataFormatString
=
"{0:dd/MM/yyyy}"
>
</
telerik:GridDateTimeColumn
>
<
telerik:GridButtonColumn
HeaderText
=
"Delete"
HeaderStyle-Width
=
"50px"
CommandName
=
"Delete"
Text
=
"Delete"
UniqueName
=
"DeleteColumn"
>
</
telerik:GridButtonColumn
>
</
Columns
>
</
MasterTableView
>
<
ClientSettings
AllowKeyboardNavigation
=
"true"
></
ClientSettings
>
</
telerik:RadGrid
>
<
asp:SqlDataSource
ID
=
"SDSEmpresasEnCentro"
runat
=
"server"
ConnectionString="<%$ ConnectionStrings:PCMConnectionString %>"
SelectCommand="SELECT * From EmpresasEnCentros Where idRevisionCentros=@idRevisionCentros"
DeleteCommand="DELETE EmpresasEnCentros WHERE id = @id"
InsertCommand="INSERT INTO EmpresasEnCentros (idRevisionCentros,Empresa,Numero,Desde,HastaEl) VALUES (@idRevisionCentros,@Empresa,@Numero,@Desde,@HastaEl)"
UpdateCommand="UPDATE EmpresasEnCentros SET Empresa=@Empresa, Numero=@Numero,Desde=@Desde,HastaEl=@HastaEl WHERE id = @id">
<
DeleteParameters
>
<
asp:Parameter
Name
=
"id"
Type
=
"Int32"
></
asp:Parameter
>
</
DeleteParameters
>
<
SelectParameters
>
<
asp:parameter
Name
=
"idRevisionCentros"
DefaultValue
=
"0"
type
=
"Int32"
/>
</
SelectParameters
>
<
InsertParameters
>
<
asp:parameter
Name
=
"idRevisionCentros"
type
=
"Int32"
/>
<
asp:Parameter
Name
=
"Empresa"
Type
=
"String"
></
asp:Parameter
>
<
asp:Parameter
Name
=
"Numero"
Type
=
"Int32"
></
asp:Parameter
>
<
asp:Parameter
Name
=
"Desde"
Type
=
"DateTime"
></
asp:Parameter
>
<
asp:Parameter
Name
=
"HastaEl"
Type
=
"DateTime"
></
asp:Parameter
>
</
InsertParameters
>
<
UpdateParameters
>
<
asp:Parameter
Name
=
"id"
Type
=
"Int32"
></
asp:Parameter
>
<
asp:Parameter
Name
=
"Empresa"
Type
=
"String"
></
asp:Parameter
>
<
asp:Parameter
Name
=
"Numero"
Type
=
"Int32"
></
asp:Parameter
>
<
asp:Parameter
Name
=
"Desde"
Type
=
"DateTime"
></
asp:Parameter
>
<
asp:Parameter
Name
=
"HastaEl"
Type
=
"DateTime"
></
asp:Parameter
>
</
UpdateParameters
>
</
asp:SqlDataSource
>
protected
void
RGVEmpresasEnCentro_PreRender(
object
sender, EventArgs e)
{
RGVEmpresasEnCentro.Rebind();
GridTableView masterTable = (sender
as
RadGrid).MasterTableView;
foreach
(GridColumn column
in
masterTable.RenderColumns)
{
if
((column
is
IGridEditableColumn) && (column
as
IGridEditableColumn).IsEditable && masterTable.GetBatchColumnEditor(column.UniqueName) !=
null
)
{
Control container = (masterTable.GetBatchColumnEditor(column.UniqueName)
as
IGridColumnEditor).ContainerControl;
if
(container !=
null
&& container.Controls.Count > 0)
{
(container.Controls[0]
as
WebControl).Width = Unit.Percentage(100);
}
}
}
}
protected
void
RGVEmpresasEnCentro_BatchEditCommand(
object
sender, GridBatchEditingEventArgs e)
{
foreach
(GridBatchEditingCommand command
in
e.Commands)
{
if
(command.Type == GridBatchEditingCommandType.Insert)
{
Hashtable newValues = command.NewValues;
if
(!newValues.ContainsValue(
null
))
{
string
centro = Request.QueryString[
"Centro"
];
string
periodo = Request.QueryString[
"Periodo"
];
int
idRevisionCentro =CentrosBLL.ComprobarYCrearRegistros(centro, periodo, Session[
"codigoSap"
].ToString());
string
empresa = newValues[
"Empresa"
].ToString();
int
numero = Convert.ToInt32(newValues[
"Numero"
]);
DateTime desde = Convert.ToDateTime(newValues[
"Desde"
]);
DateTime hasta=Convert.ToDateTime(newValues[
"HastaEl"
]);;
CentrosBLL.insertEmpresaCentro(idRevisionCentro,empresa,numero,desde,hasta);
}
e.Canceled =
true
;
}
}
}
protected
void
RGVEmpresasEnCentro_DeleteCommand(
object
sender, GridCommandEventArgs e)
{
//Some code for delete programatically
}