I have this modal with a grid, the problem is that when I select a row. this function is executed repeatedly doing the same thing.
@Html.DevExpress().GridView(settings => {
settings.Name = "grid_ModalProductosProceso";
settings.CallbackRouteValues = new { Controller = (string)ViewBag.NameController, Action = "GridViewModalProductos" };
settings.SettingsSearchPanel.Visible = true;
settings.SettingsBehavior.AllowFixedGroups = true;
settings.SettingsBehavior.AllowDragDrop = true;
settings.SettingsBehavior.AllowSort = true;
settings.Width = System.Web.UI.WebControls.Unit.Percentage(100);
settings.Height = System.Web.UI.WebControls.Unit.Percentage(100);
settings.ClientSideEvents.Init = "OnInit";
settings.ClientSideEvents.EndCallback = "OnEndCallback";
settings.SettingsCookies.StoreFiltering = true;
settings.SettingsCookies.StoreGroupingAndSorting = true;
settings.SettingsCookies.StorePaging = true;
settings.SettingsCookies.Enabled = true;
settings.SettingsBehavior.EnableCustomizationWindow = true;
settings.CustomJSProperties = (s, e) =>
{
MVCxGridView gridView = (MVCxGridView)s;
e.Properties["cpClientLayout" + (string)ViewBag.NameController] = gridView.SaveClientLayout();
ASPxGridView gridJS = (ASPxGridView)s;
e.Properties["cpGridSettings"] = gridJS.Settings;
//e.Properties["cpGridColumns"] = gridJS.Columns;
List<string> columnsNames = new List<string>();
foreach (GridViewDataColumn item in gridJS.DataColumns)
{
columnsNames.Add(item.FieldName);
}
e.Properties["cpGridColumns"] = columnsNames;
};
settings.CommandColumn.Visible = true;
settings.Settings.UseFixedTableLayout = true;
settings.CommandColumn.ShowClearFilterButton = true;
//CheckBox en cada fila y checkbox general
settings.CommandColumn.ShowSelectCheckbox = true;
settings.CommandColumn.SelectAllCheckboxMode = GridViewSelectAllCheckBoxMode.Page;
settings.CommandColumn.HeaderStyle.BackColor = System.Drawing.Color.Orange;
settings.CommandColumn.Width = 30;
settings.SettingsBehavior.AllowSelectByRowClick = true;
settings.SettingsBehavior.AllowSelectSingleRowOnly = true;
settings.SettingsResizing.ColumnResizeMode = ColumnResizeMode.Control; //settings.SettingsBehavior.ColumnResizeMode = ColumnResizeMode.Control;
settings.Settings.ShowGroupPanel = true;
settings.ClientSideEvents.SelectionChanged = "OnSelectionChanged";
settings.ClientSideEvents.BeginCallback = "OnBeginCallback";
settings.SettingsPager.Position = System.Web.UI.WebControls.PagerPosition.TopAndBottom;
settings.SettingsPager.FirstPageButton.Visible = true;
settings.SettingsPager.LastPageButton.Visible = true;
settings.SettingsPager.PageSizeItemSettings.Visible = true;
settings.SettingsPager.PageSizeItemSettings.Items = new string[] { "10", "20", "50" };
settings.KeyFieldName = "ID";
settings.Columns.Add(column =>
{
column.FieldName = "ID";
column.Caption = "#Id";
column.HeaderStyle.BackColor = System.Drawing.Color.LightGray;
column.HeaderStyle.Font.Bold = true;
});
CRM.Website.DevExpressHelpers.GridHelper.AddColumnsSettingViewData(settings.Columns, Model.GetDynamicCollectionList(Model.Datos));
//Fila de filtros
settings.Settings.ShowFilterRow = true;
//Icono del menu del filtrado
settings.Settings.ShowFilterRowMenu = false;
//Setear por defecto la condicion de filtrado
//de todas las columnas a Contains
settings.DataBound = (sender, e) =>
{
MVCxGridView gv = sender as MVCxGridView;
gv.Visible = (gv.VisibleRowCount > 0);
foreach (GridViewColumn column in gv.Columns)
{
var dataColumn = column as GridViewDataColumn;
if (dataColumn != null)
dataColumn.Settings.AutoFilterCondition = AutoFilterCondition.Contains;
}
};
settings.PreRender = (s, e) => {
MVCxGridView grid = s as MVCxGridView;
if(grid != null)
grid.ExpandAll();
};
settings.SettingsDetail.ExportMode = GridViewDetailExportMode.Expanded;
}).Bind(Model.Datos).GetHtml()
This is the controller
public ActionResult GridViewModalProductos()
{
vProductos.Datos = (DataTable)Session["ProductosClientePedido"];
return PartialView("_GridViewModalProductos", vProductos);
}
I appreciate the help.
Greetings.