add my own user control in a column

15 posts, 0 answers
  1. Axel
    Axel avatar
    12 posts
    Member since:
    May 2011

    Posted 17 Oct 2011 Link to this post

    Hello,
    can I add my own user control in a column?
    (RadGridView)
    If so, can you show me an example?

    Thanks
  2. Jack
    Admin
    Jack avatar
    2333 posts

    Posted 20 Oct 2011 Link to this post

    Hello Axel,

    Yes, you can add custom controls in a grid cell. However, we recommend using elements instead. Using controls may lead to performance loss and high memory consumption. In addition, you will experience visual glitches because controls cannot be clipped inside other controls efficiently in WinForms.  That is why our suite actively uses elements just like in WPF or Silverlight. This allows us also to support themes and animations. 

    You can consider the following KB article which describes how to add radio button elements to a grid cell. Please describe in detail the desired look and behavior that you want to achieve and we will be glad to assist you further.

    I am looking forward to your reply.
     
    Kind regards,
    Jack
    the Telerik team

    Q2’11 SP1 of RadControls for WinForms is available for download (see what's new); also available is the Q3'11 Roadmap for Telerik Windows Forms controls.

  3. Axel
    Axel avatar
    12 posts
    Member since:
    May 2011

    Posted 24 Oct 2011 Link to this post

    Hello,
    I have attached a picture of my UserControl.
    This is to be inserted into a cell.
    It will display dates in different colors. Furthermore, it has other futures.

    When I look at the example radio button look at her.
    Then there is a problem with "this.Children.Add (gridstatus)"
    Gridstatus is a UserControl and not a RadElements

    What can I do

    Am thankful for every tip

    addition:
    I want to fill the UserControl "grid status" with a DataTable.
    The DataTable I want to save again in a DataTable which I will bind to the grid.

  4. Jack
    Admin
    Jack avatar
    2333 posts

    Posted 24 Oct 2011 Link to this post

    Hello Axel,

    Thank you for writing me back and thank you for these details.

    Like I said in my previous post, it is not recommended to use user controls in grid cells. That is why I pointed you to the radio button example. You could use elements to display custom data instead of a user control. This way your application will be faster and will look better. Another option will be to override the cell painting mechanism. Please take a look at the GridView >> Customize >> Custom Painting example in our demo application. It describes a similar scenario. 

    I am not sure about the binding question, could you please describe it in detail?

    Best wishes,
    Jack
    the Telerik team

    Q2’11 SP1 of RadControls for WinForms is available for download (see what's new); also available is the Q3'11 Roadmap for Telerik Windows Forms controls.

  5. Axel
    Axel avatar
    12 posts
    Member since:
    May 2011

    Posted 25 Oct 2011 Link to this post

    Hello,

    you said
    that it is not performing well enough to insert a UserControl. Can you show me an example anyway.

    I've been looking at the example "GridView>> Customize>> Custom Painting." But that's not right for me.

    Binding to Data:
    I want to bind the grid to a DataTable.
    A column of the DataTable is a DataTable as the Type.
    And I would like to use this column to fill my UserControls.

    That's the plan.
  6. Jack
    Admin
    Jack avatar
    2333 posts

    Posted 28 Oct 2011 Link to this post

    Hi Axel,

    Thank you for writing us back.

    Your scenario seems to be similar to one of the hierarchy examples in our demo application. Could you please describe it with greater detail? I will be glad to help further.

    The following sample demonstrates how to add a button control in a grid cell. You should replace the button with your custom control:
    public class ButtonColumn : GridViewDataColumn
    {
        public ButtonColumn(string fieldName)
            : base("ButtonColumn", fieldName)
        {
            Width = 100;
        }
     
        public override Type GetCellType(GridViewRowInfo row)
        {
            if (row is GridViewDataRowInfo)
            {
                return typeof(CustomCell);
            }
            return base.GetCellType(row);
        }
    }
     
    public class CustomCell : GridDataCellElement
    {
        RadHostItem hostItem;
        RadButton button;
     
        public CustomCell(GridViewColumn column, GridRowElement row)
            : base(column, row)
        {}
     
        protected override void CreateChildElements()
        {
            button = new RadButton();
            button.Text = "Click me!";
            hostItem = new RadHostItem(button);
            this.Children.Add(hostItem);
        }
     
        public override bool IsCompatible(GridViewColumn data, object context)
        {
            return data.Name == "ButtonColumn" && context is GridDataRowElement;
        }
    }

    I hope this helps.
     
    Best wishes,
    Jack
    the Telerik team

    Q2’11 SP1 of RadControls for WinForms is available for download (see what's new); also available is the Q3'11 Roadmap for Telerik Windows Forms controls.

  7. Bao
    Bao avatar
    54 posts
    Member since:
    Jan 2015

    Posted 19 Sep 2017 in reply to Jack Link to this post

    Hi Jack,

    I have custom textbox when i do this way , it has problem with tabbing.

    https://www.screencast.com/t/jO84luQcpt2

  8. Dess | Tech Support Engineer, Sr.
    Admin
    Dess | Tech Support Engineer, Sr.  avatar
    3955 posts

    Posted 20 Sep 2017 Link to this post

    Hello, Bao, 

    Thank you for writing.  

    Feel free to submit a support ticket where you can provide a sample project demonstrating the exact problem that you are facing. This would be appropriate way Telerik support to investigate the precise case and assist you further. 

    Thank you for your understanding and cooperation.

    Regards,
    Dess
    Progress Telerik
    Try our brand new, jQuery-free Angular 2 components built from ground-up which deliver the business app essential building blocks - a grid component, data visualization (charts) and form elements.
  9. Gh Reza
    Gh Reza avatar
    12 posts
    Member since:
    Jul 2011

    Posted 18 Mar in reply to Jack Link to this post

    Hi Dear !

    I want use this code in WinForm 2020 R1, but not works.

    when add this control to my gridview, really nothing added to grid and closed property builder form.

  10. Dess | Tech Support Engineer, Sr.
    Admin
    Dess | Tech Support Engineer, Sr.  avatar
    3955 posts

    Posted 19 Mar Link to this post

    Hello, Reza,

    RadGridView allows you to create custom cell elements which contain the desired inner elements. The following help article demonstrates a step by step tutorial how to achieve it: https://docs.telerik.com/devtools/winforms/controls/gridview/cells/creating-custom-cells 

    A complete example is available in our Demo application >> GridView >> Columns example >> toggle the Custom checkbox on right Settings panel.

    I hope this information helps.

    Regards,
    Dess | Tech Support Engineer, Sr.
    Progress Telerik

    Get quickly onboarded and successful with your Telerik and/or Kendo UI products with the Virtual Classroom free technical training, available to all active customers. Learn More.
  11. Gh Reza
    Gh Reza avatar
    12 posts
    Member since:
    Jul 2011

    Posted 21 Mar in reply to Dess | Tech Support Engineer, Sr. Link to this post

    Thank's for your support, But i have a problem with it.

    In the following help article demonstrates a step by step tutorial how to achieve it: https://docs.telerik.com/devtools/winforms/controls/gridview/cells/creating-custom-cells -> Extending the custom data cell example

    Where defined  The "EventHandler radButtonElement_Click "?

  12. Gh Reza
    Gh Reza avatar
    12 posts
    Member since:
    Jul 2011

    Posted 22 Mar Link to this post

    Hi Dear !

    I can only access to my custom cell in edit mode after adding row.How can I use my custom cell in radGridView New Row ?

     

  13. Dess | Tech Support Engineer, Sr.
    Admin
    Dess | Tech Support Engineer, Sr.  avatar
    3955 posts

    Posted 23 Mar Link to this post

    Hello, Reza,

    Indeed, the radButtonElement_Click event handler is not included in the provided code snippet. However, it is not expected to contain any solution specific code. It demonstrates how to subscribe to the Click event. It is up to you what action you will perform when clicking the button.

    As to the question about the new row, note that in the custom GridViewDataColumn class, the GetCellType method is the appropriate place to specify what cell to be used for the respective data row. The referred example demonstrates how to replace only the cell element used in the GridViewDataRowInfo. If you want to replace the cells for other row as well, feel free to add an additional if condition for the GridViewNewRowInfo and return the type of the custom cell element that you have.  

    The code snippet below shows how the same cell element is used for the data and new rows:

            public override Type GetCellType(GridViewRowInfo row)
            {
                if (row is GridViewDataRowInfo || row is GridViewNewRowInfo)
                {
                    return typeof(GridDateTimeCellElement);
                }
                return base.GetCellType(row);
            }
    I hope this information helps. 

     

    Regards,
    Dess | Tech Support Engineer, Sr.
    Progress Telerik

    Get quickly onboarded and successful with your Telerik and/or Kendo UI products with the Virtual Classroom free technical training, available to all active customers. Learn More.
  14. Gh Reza
    Gh Reza avatar
    12 posts
    Member since:
    Jul 2011

    Posted 23 Mar in reply to Dess | Tech Support Engineer, Sr. Link to this post

    Thank you.

    It is worked. but i have another problem.

    1- After adding new row , my custom cell value cleared.

    2- How can i access to my custom Cell Value1 and Value2 and ...

    (My Custom Cell contains an RadTextBoxElement and RadButtonElement )

        my custom cell has multiple values:

            1- Id (int) that must store in another cell . 

            2- Title (String) that must store in custom cell textbox.

            3-  an Object that may be use in some senario.

     

  15. Dess | Tech Support Engineer, Sr.
    Admin
    Dess | Tech Support Engineer, Sr.  avatar
    3955 posts

    Posted 23 Mar Link to this post

     

    Hello, Reza,

    Note that due to the data virtualization that RadGridView offers, cell elements are created only for the currently visible cells and they are being reused during operations like scrolling, filtering, grouping etc. 

    The SetContentCore method of the custom cell element is the appropriate place to extract the respective value from the data row (GridViewDataRowInfo) which is currently associated with this cell element: https://docs.telerik.com/devtools/winforms/knowledge-base/custom-gridview-cells-with-several-elements

    Thus, whenever the cell element is being reused, the SetContentCore is called, the respective data is extracted from the currently associated data row and the correct information is displayed in the cell.

    However, when you update the custom cell element's values, please don't forget to modify the value of the respective data cell. Thus, the SetContentCore method will extract the correct information the next time it is being called.

    I believe that the provided information would be helpful for your scenario.

    Regards,
    Dess | Tech Support Engineer, Sr.
    Progress Telerik

    Progress is here for your business, like always. Read more about the measures we are taking to ensure business continuity and help fight the COVID-19 pandemic.
    Our thoughts here at Progress are with those affected by the outbreak.

Back to Top