IssuesMigrate from 2010v1 to 2025v1: WebReport, GridView, event handlers,

Posted by: enrique.pv-ext on 10 December 2025, 12:30 pm EST

  • Posted 10 December 2025, 12:30 pm EST

    Issues using 2025v1: C1Window , C1WebReport , C1GridView (grouping, columns moved,scroll …)

    Details

    C1Window not found !!

    C1DateInput not found

    use this?? C1.Web.Wijmo.Controls.C1Input.C1InputDate

    C1WebReport not found

    C1.C1Report.4.8.dll

    I try C1.Web.Wijmo.Controls.C1ReportViewer.C1ReportViewer

    C1WebReport1.Report.DataSource.Recordset not found

    C1WebReport1.Report.Fields[“logo”].Picture =

    not working

    public void ShowTransitReport(C1.Web.Wijmo.Controls.C1ReportViewer.C1ReportViewer C1WebReport1, SepUser loggeduser, int plazaId, int tripId)

    {

    try

    {

    IReportsService rptService = new ReportsService();

         C1WebReport1.ReportSource.FileName = HttpContext.Current.Request.PhysicalApplicationPath 
             + "/" 
             + GetConfigurationParameter(ConfigurationParamType.ReportsPath) 
             + "TollControl/Transit.xml";
         C1WebReport1.ReportSource.ReportName = "report";
    
         DataView dv = (DataView)rptService.GetTransitReport(tripId, plazaId, loggeduser.LanguageId);
    
         C1WebReport1.Report.DataSource.Recordset = dv;
    
         C1WebReport1.Report.Fields["logo"].Picture = HttpContext.Current.Request.PhysicalApplicationPath 
             + "/" 
             + GetConfigurationParameter(ConfigurationParamType.LogoPath);
         C1WebReport1.Report.Fields["logo"].PictureScale = C1.C1Report.PictureScaleEnum.Scale;
    

    C1CurrencyInput

    C1.Web.Wijmo.Controls.C1Input.C1InputCurrency

    not found:

    cb.UseEmbeddedVisualStyles = false;

    cb.VisualStyle = “CustomVisualStyle”;

    cb.VisualStylePath = “~/VisualStyles”;

    C1GroupTextEventArgs not found

    C1GridViewGroupColumnMovedEventArgs not found

    // C1.Web.UI.Controls.3, Version=3.5.20101.174, Culture=neutral, PublicKeyToken=9b75583953471eea

    // C1.Web.UI.Controls.C1GridView.C1GroupTextEventArgs

    protected void PaymentModeGrid_GroupAggregate(object sender, C1GroupTextEventArgs e)

    protected void gridLists_GroupColumnMoved(object sender, C1GridViewGroupColumnMovedEventArgs e)

    // C1.Web.Wijmo.Controls.48, Version=4.8.20251.392, Culture=neutral, PublicKeyToken=9b75583953471eea

    // C1.Web.Wijmo.Controls.C1GridView.C1GridViewColumnMovedEventArgs

    Column not found

    Session[“GroupBy”] = ((C1.Web.Wijmo.Controls.C1GridView.C1BoundField)(((C1.Web.Wijmo.Controls.C1GridView.C1GridViewColumnMovedEventArgs)(e)).Column)).DataField as string;

    C1GridView1.GroupColumnMoved not found

    C1GridViewGroupColumnMovedEventHandler not found

    C1GridView1.GroupColumnMoved += new C1GridViewGroupColumnMovedEventHandler(C1GridView1_GroupColumnMoved);

    // C1.Web.Wijmo.Controls.45, Version=4.5.20251.392, Culture=neutral, PublicKeyToken=9b75583953471eea

    // C1.Web.Wijmo.Controls.C1GridView.C1GridViewColumnMovedEventHandler

    ScrollSettings not found

    this.C1GridView1.ScrollSettings.ScrollMode = C1GridViewScrollMode.ScrollBar;

    this.C1GridView1.ScrollSettings.ScrollOrientation = C1.Web.UI.DOMScrollOrientation.Vertical;

    use this ? this.C1GridView1.ScrollingSettings.Mode = ScrollMode.Vertical;

    this.C1GridView1.CallbackOptions = CallbackOptions.Sorting; not found

    use this ?? this.C1GridView1.CallbackSettings.Action = CallbackAction.Sorting

    this.C1GridView1.AllowGrouping = false; not found

    alternative ??

    C1TabControl not found

    C1TabPage not found

    ExportFormatsEnum not found

    C1GridView.OnGroupAggregate ??

    <C1GridView:C1GridView ID=“PartialWithdrawGrid” runat=“server”

    AutoGenerateColumns=“False”

    EmptyDataText=“El operador elegido no ha hecho retiradas parciales”

    DataKeyNames=“ShiftNumber,PlaceId,DateTime,ManuallyAdded,BEGIN_DATE_TIME_SHIFT,OPERATOR_ID, Type”

    CellPadding=“2”

    OnGroupAggregate=“PartialWithdrawGrid_GroupAggregate”

    UseEmbeddedVisualStyles=“False”

    VisualStylePath=“~/VisualStyles”

    VisualStyle=“Vista”

    Width=“100%”>



    any suggestion ?

  • Posted 11 December 2025, 8:39 am EST

    Hello,

    For your reference, you are migrating from a very old version (2010v1) to the latest release (2025v1), so encountering breaking changes is expected. You will need to review the release history and update your project accordingly.

    Additionally, please note that WebForms has been considered a legacy framework for quite some time, and our WebForms controls are also in legacy status. This means there is no active development on them, and no new features or enhancements are being introduced.

    To upgrade your controls, we’d recommend reviewing all the breaking changes in Release Notes and going through the new documentation to implement your requirements.

    If you still are unable to implement your requirement, please share your use case, expected results, previous implementation, etc. with us so that we can assist you accordingly.


    C1Window not found !!: C1Window has been replaced with https://developer.mescius.com/componentone/docs/webforms/online-dialog/overview.html

    C1DateInput not found: Please refer to https://developer.mescius.com/componentone/docs/webforms/online-input/usingc1inputdate.html

    C1.Web.Wijmo.Controls.C1Input.C1InputCurrency not found: please refer to https://developer.mescius.com/componentone/docs/webforms/online-input/usingc1inputcurrency.html

    Regarding missing properties, webforms input controls DO NOT support EmbeddedVisualStyles, CustomVisualStyle, or VisualStylePath anymore. Please use CSS based styling.


    We are investigating other behaviors and will get back with updates soon.

    Regards,

    Uttkarsh.

  • Posted 12 December 2025, 6:29 am EST

    Hello,

    C1ReportViewer:

    For your requirement, you can load and configure your Report using RegisterDocument() method.


    C1TabControl not found:

    Please refer to https://developer.mescius.com/componentone/docs/webforms/online-tab/overview.html


    C1GridView:

    As we understand it, you are currently unable to locate the events related to grouping (Aggregates) and column dragging/reordering in the latest version of the grid. After reviewing the available documentation and resources, we were not able to identify the same events or APIs that you were using previously.

    To help us guide you toward the correct implementation using the updated API set, could you please share the specific use cases and the behaviors you need to achieve? Once we have that information, we will provide recommendations or alternative approaches.

    ScrollSettings not found:

    Please refer to https://developer.mescius.com/componentone/docs/webforms/online-gridview/C1.Web.Wijmo.Controls.45~C1.Web.Wijmo.Controls.C1GridView.C1GridView~ScrollingSettings.html

    use this ? this.C1GridView1.ScrollingSettings.Mode = ScrollMode.Vertical; yes that is correct.

    use this ?? this.C1GridView1.CallbackSettings.Action = CallbackAction.Sorting yes that is correct.

    Regards,

    Uttkarsh.

  • Posted 12 December 2025, 8:10 am EST - Updated 12 December 2025, 9:03 am EST

    Thanks all.

    About C1GridView Grouping:

    My actual code (for 2012v1)

    I use GroupedColumns for grouping by SortExpression (my GetGridFilterByFieldType method)

    In 2025v1, the GroupedColumns collection not exists.

      /// <summary>
      /// Get a DataTable with filters correctly constructed
      /// </summary>
      /// <param name="gridColumns">Filters information</param>
      /// <param name="mainTable">Main table to realize filters</param>
      /// <param name="appDateFormat">Date format parameter</param>
      /// <param name="sortEventArgs">Data of sorting event</param>
      /// <returns>Correct DataTable</returns>
      public static DataTable GetChartGridFilterByFieldType(C1GridView gridView, DataTable mainTable, string appDateFormat, C1GridViewSortEventArgs sortEventArgs)
      {
          // TODO: NEW 2025v1
          gridView.ShowGroupArea = true;
          gridView.GroupAreaCaption = "Agrupar";
          gridView.GroupIndent = 0;
          var colName = gridView.Columns[0];
    
          //Group grid datasource 
          var result = from row in GetGridFilterByFieldType(gridView, mainTable, appDateFormat, sortEventArgs).AsEnumerable()
                       //let mivariable = 
                       group row by new
                       {
                           Name = row.Field<object>(gridView.GroupedColumns[0].SortExpression)
                       } into grp
                       select new
                       {
                           NAME = grp.Key.Name,
                           COUNT = grp.Count(),
                       };
          
          DataTable dt = result.ToList().ToDataTable();
          dt.Select(null, (gridView.GroupedColumns[0].SortDirection == C1SortDirection.Ascending ? "Name ASC" : "Name DESC"));
    
          //Return datatable with grouping info
          return dt;
      }

    and

          public static DataTable GetGridFilterByFieldType(C1GridView gridView, DataTable mainTable, string appDateFormat, C1GridViewSortEventArgs sortEventArgs)
        {
            DataTable retValue = new DataTable();
            DataRow[] dr;
            DataColumn dc = new DataColumn();
            FilterOperator fOperator;
    
            string fieldName = string.Empty;
            string fieldValue = string.Empty;
            string filterValue = string.Empty;
            string fieldGroupName = string.Empty;
            string sortExpression = string.Empty;
            string condExpression = string.Empty;
            string condExpressionNumeric = string.Empty;
            C1SortDirection dirOrder = C1SortDirection.None;
            bool isSpecialType = false;
    
            #region SQL OF FILTERS AND ORDER BY
    
            //FIRST LEVEL OF ORDER BY --> GROUPING FIELD
            if (gridView.GroupedColumns.Count > 0)
            {
                if (!string.IsNullOrEmpty(((C1BoundField)gridView.GroupedColumns[0]).SortExpression))
                {
                    fieldGroupName = ((C1BoundField)gridView.GroupedColumns[0]).SortExpression.ToString();
    
                    dirOrder = GetSortDirectionFromField(((C1BoundField)gridView.GroupedColumns[0]), sortEventArgs, isSpecialType);
                    sortExpression += ((C1BoundField)gridView.GroupedColumns[0]).SortExpression + " " + (dirOrder == C1SortDirection.Ascending ? "ASC" : "DESC");
                }
    
            }
    
            //SECOND LEVEL OF ORDER BY --> REST OF COLUMNS
            for (int i = 0; i < gridView.Columns.Count; i++)
            {
                dirOrder = C1SortDirection.None;
                isSpecialType = false;
    
                if (gridView.Columns[i].ItemStyle.CssClass == "GridNumber" || gridView.Columns[i].ControlStyle.CssClass == "GridNumber")
                {
                    #region DECIMAL NUMBER
                    dirOrder = GetSortDirectionFromField((C1BoundField)gridView.Columns[i], sortEventArgs, isSpecialType);
                    fOperator = ((C1BoundField)gridView.Columns[i]).FilterOperator;
    
                    if (fOperator != FilterOperator.NoFilter)
                    {
                        filterValue = ((C1BoundField)gridView.Columns[i]).FilterValue.ToString();
    
                        // Si encontramos valor nulo asignamos un 0
                        if (string.IsNullOrEmpty(filterValue)) filterValue = "0";
                        // Varias expresiones condicionales
                        if (condExpressionNumeric.Length > 0) condExpressionNumeric += " AND ";
                        // Construimos la expresion SQL del WHERE
                        condExpressionNumeric += GetSQLFilterFromGridFilter(fOperator, gridView.Columns[i].ToString(), filterValue);
                    }
                    #endregion
                }
                else if (gridView.Columns[i].ItemStyle.CssClass == "GridNumericValue" || gridView.Columns[i].ControlStyle.CssClass == "GridNumericValue")
                {
                    #region INTEGER NUMBER
                    dirOrder = GetSortDirectionFromField((C1BoundField)gridView.Columns[i], sortEventArgs, isSpecialType);
                    fOperator = ((C1BoundField)gridView.Columns[i]).FilterOperator;
    
                    if (fOperator != FilterOperator.NoFilter)
                    {
                        filterValue = ((C1BoundField)gridView.Columns[i]).FilterValue.ToString();
    
                        if (string.IsNullOrEmpty(filterValue)) filterValue = "0";
                        if (condExpression.Length > 0) condExpression += " AND ";
    
                        condExpression += GetSQLFilterFromGridFilter(fOperator, gridView.Columns[i].ToString(), filterValue);
                    }
                    #endregion
                }
                else if (gridView.Columns[i].ItemStyle.CssClass == "GridDate" || gridView.Columns[i].ControlStyle.CssClass == "GridDate")
                {

    I’m very confused now, yet.

    // All I should need know about Gridview Grouping

                // All I should need know about Gridview Grouping
                gridView.ShowGroupArea = true;
                gridView.GroupAreaCaption = "Agrupar";
                gridView.GroupIndent = 0;
                gridView.AllowColMoving = true;
                var colName = gridView.Columns[0];
                var cf = (colName as C1Field);
                cf.AllowMoving = false;
                cf.GroupInfo.Position = GroupPosition.Header;
                cf.Aggregate = Aggregate.Count;
                cf.Aggregate = Aggregate.Custom; // Custom value (causing grid to throw the C1GridView.OnClientGroupAggregate event).

    Any PDF file with all documentation about WebForms ? maybe NotebookLM + IA can be very useful. THX

Need extra support?

Upgrade your support plan and get personal unlimited phone support with our customer engagement team

Learn More

Forum Channels