Hiding Labels in Insert mode for read only fields

9 posts, 0 answers
  1. Phil
    Phil avatar
    15 posts
    Member since:
    Mar 2012

    Posted 26 Aug 2015 Link to this post

    This might be a little hard to explain but i'm going to do my best because i'm stuck.

    I've programatically created an EditTemplate Column using an IBindableTemplate.

    The call looks like:

    GridTemplateColumn col = new GridTemplateColumn();
    col.ItemTemplate = new ItemLabel(column);
    col.EditItemTemplate = new EditRadNumTextbox(grid, column);
     

    I could create an insert template but the problem im having is even if i do have an insert template I'm not sure how to find and hide the labels so i end up with a labels in the left column with hidden controls in the right column in the edit form.

     

    How do I find the label in edit/insert mode with in an IBindableTemplate class?

    it appears i have two places i can look for it in 

     public void InstantiateIn(Control container)

    or in the control databinding, but in insertmode there's nothing to bind to so i assume i should be able to find the label in InstantiateIn?

    Or is there a way to set GridTemplateColumn to not show the label ion insert?

     

    Any help would be much appreciated.

     

     

     ​

  2. Phil
    Phil avatar
    15 posts
    Member since:
    Mar 2012

    Posted 26 Aug 2015 in reply to Phil Link to this post

    Never mind, I figured it out.

    Below is my solution, "column" is my data object that contains all the properties of our grid. I check when i want to hide on insert mode and set always hidden when its not supposed to be shown.

    if (column.SCSFC_DoNotDisplay || column.SCSFC_Hide_In_Edit_Mode || column.SCSFC_ReadOnly)
    {
          col.InsertVisiblityMode = GridColumnVisibilityMode.AlwaysHidden;
    }​

  3. Eyup
    Admin
    Eyup avatar
    3962 posts

    Posted 31 Aug 2015 Link to this post

    Hello Phil,

    If you want to achieve this depending on a condition per individual record, you can determine whether the item is in edit or insert form:
    http://www.telerik.com/help/aspnet-ajax/grid-distinguish-edit-insert-mode-on-itemcreated-itemdatabound.html

    And hide the required cell:
    ( Section Accessing controls in edit/insert mode )
    http://www.telerik.com/help/aspnet-ajax/grid-accessing-cells-and-rows.html

    Similar to this:

    Copy Code
    Protected Sub RadGrid1_ItemCreated(sender As Object, e As GridItemEventArgs)
        If TypeOf e.Item Is IGridInsertItem Then
            Dim cell As TableCell = TryCast(e.Item, GridEditableItem)("ColumnUniqueName")
            cell.Parent.Visible = False
        End If
    End Sub

    Hope this helps.

    Regards,
    Eyup
    Telerik
    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Feedback Portal and vote to affect the priority of the items
  4. Phil
    Phil avatar
    15 posts
    Member since:
    Mar 2012

    Posted 31 Aug 2015 in reply to Eyup Link to this post

    Eyup,

    That actually wouldn't work for me because i am dynamically creating a grid based on the form and not at a record level. By using your suggestion we would end up having to do that on every form we use the radgrid and that would end up being about 50 files. 

    My solution ends up going in our grid generation class which then takes care of the insert display logic on every grid, so code is in one place only :)

     

    Thanks for the suggestion though

      

    Phil

  5. Eyup
    Admin
    Eyup avatar
    3962 posts

    Posted 02 Sep 2015 Link to this post

    Hi Phil,

    I'm glad you've found a viable solution for your scenario. Since you mentioned "grid generation class", just please keep in mind that creating custom controls is beyond our support scope even if they are inherited directly from Telerik UI controls. If you happen to come across the need to implement something like this, you can use UserControls. Other than that, the logic seems fine.

    Regards,
    Eyup
    Telerik
    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Feedback Portal and vote to affect the priority of the items
  6. Phil
    Phil avatar
    15 posts
    Member since:
    Mar 2012

    Posted 02 Sep 2015 in reply to Eyup Link to this post

    Well i guess im not really sure its technically considered a custom control since we're using all of telerik's samples in programatically generating a radgrid. Only thing we've done is organized telerik into a class and a method call that allows us to control what type of column control to load.

     

    Everything starts with:

    RadGrid grid = new RadGrid();

    Then we just dynamically add columns with item/edit/insert templates as we go. As much as things are custom im not really sure its considered a custom control since we're using everything telerik provides and we're not creating any custom control objects?

    Everything we've done is pretty much taken from the basic concepts of this links:

    http://docs.telerik.com/devtools/aspnet-ajax/controls/grid/defining-structure/creating-a-radgrid-programmatically

     

    So forgive me if i'm a little concerned when someone mentions that my issue may not be supported when its in your documentation as a way to do things.

    One last note, is i wasn't really looking for logic (i probably should have phrased my post better), i was looking for a feature that a telerik grid may or may not have that would allow me to hide labels in an insert template. If i know that the feature exists then i can programmatically turn it off/on in our grid. In the end it was the InsertVisiblityMode feature that allowed me to do what i wanted.

    Thanks for your response 

  7. Eyup
    Admin
    Eyup avatar
    3962 posts

    Posted 03 Sep 2015 Link to this post

    Hello Phil,

    Programmatic creation of RadGrid is perfectly viable and supported. You can even change the structure of the grid dynamically:
    http://docs.telerik.com/devtools/aspnet-ajax/controls/grid/defining-structure/changing-the-grid-structure-dynamically-on-postback

    What I meant was something like this:
    public class ModifiedRadGrid : RadGrid { } // custom internal logic
    protected void Page_Load(object sender, EventArgs e)
    {
        ModifiedRadGrid modifiedGrid = new ModifiedRadGrid();
    }

    In addition to the InsertVisibilityMode property that you've found helpful in your scenario, I want to make sure that you are also aware of the DefaultInsertValue property:
    <telerik:GridBoundColumn ... DefaultInsertValue="Accept">

    Please do not hesitate to turn to us if some questions or concerns arise.

    Regards,
    Eyup
    Telerik
    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Feedback Portal and vote to affect the priority of the items
  8. Phil
    Phil avatar
    15 posts
    Member since:
    Mar 2012

    Posted 03 Sep 2015 in reply to Eyup Link to this post

    Thanks Eyup!

    That actually will be a handy option we might someday implement when we need!

    And we are definitely not creating a custom control, so that's good news. 

    I was thinking of someday creating a scaled down project as an example for people who want to create a totally data driven dynamic grid but it feels like we'd be giving away our secret sauce hehe. It would help our future support tickets though if we just had a simplified version of our grid. 

     

    Thanks again

     

     

  9. Eyup
    Admin
    Eyup avatar
    3962 posts

    Posted 08 Sep 2015 Link to this post

    Hi Phil,

    It is perfectly understandable to keep your company logic and data private, however, if you decide to share a sample project built using a dummy source with our community, you can always create and submit a code-library:
    http://www.telerik.com/support/code-library/aspnet-ajax/grid

    Regards,
    Eyup
    Telerik
    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Feedback Portal and vote to affect the priority of the items
Back to Top