Grid DevExpress event change

0

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.

    
asked by CarlosJR 30.11.2018 в 15:41
source

0 answers