This is a migrated thread and some comments may be shown as answers.

GridTemplateColumn Hiding

3 Answers 315 Views
Grid
This is a migrated thread and some comments may be shown as answers.
YKP
Top achievements
Rank 1
YKP asked on 15 Oct 2012, 05:39 PM
Hello, 

Quite accidentally, I've found an interesting behavior with the RadGrid's GridTemplateColumn:

<telerik:RadGrid runat="server" ID="radgrid" AutoGenerateColumns="false" OnNeedDataSource="radgrid_NeedDataSource">
    <MasterTableView>
        <Columns>
            <telerik:GridTemplateColumn DataField="Text" HeaderText="foo">
                <ItemTemplate>
                    <%# Eval("Text") %>
                </ItemTemplate>
            </telerik:GridTemplateColumn>
            <telerik:GridBoundColumn DataField="Text" HeaderText="bar" Visible="false" />
            <telerik:GridEditCommandColumn HeaderText="Edit" />
        </Columns>
    </MasterTableView>
</telerik:RadGrid>

In normal mode, the GridTemplateColumn will be visible, but when in edit mode, it's the GridBoundColumn that's visible. You can tell by the HeaderText that's displayed in the edit form.

Out of curiosity, is this an intended behavior?

3 Answers, 1 is accepted

Sort by
0
Shinu
Top achievements
Rank 2
answered on 16 Oct 2012, 04:32 AM
Hi,

  • ItemTemplate is the template that appears in column cells in browser mode.

  • EditItemTemplate is the template that appears in column cells in edit mode.

    You can provide custom controls in the column which are needed in edit mode. Check the following help documentation which explains more about this.
    Column Types

    Thanks,
    Shinu.

0
YKP
Top achievements
Rank 1
answered on 16 Oct 2012, 12:30 PM
Hi,

Thanks, but I already know all that. I admit my first bit of code might have been misleading because of the template column, so check this one instead:

<telerik:RadGrid runat="server" ID="radgrid" AutoGenerateColumns="false" OnNeedDataSource="radgrid_NeedDataSource">
    <MasterTableView>
        <Columns>
            <telerik:GridBoundColumn DataField="Text" HeaderText="bar" Visible="false" />
            <telerik:GridEditCommandColumn HeaderText="Edit" />
        </Columns>
    </MasterTableView>
</telerik:RadGrid>

Note that the GridBoundColumn is set to Visible="False". In normal mode, this code will only show the GridEditCommandColumn. However, in edit mode, it will show a label + textbox for the GridBoundColumn, even though it's set to Visible="False".

Now, unless I'm wrong, shouldn't it simply show nothing when in edit mode?

0
Shinu
Top achievements
Rank 2
answered on 17 Oct 2012, 04:35 AM
Hi,

In order to hide the column in edit mode you should set  ReadOnly property as true instead of Visible property.
aspx:
<telerik:GridBoundColumn  ReadOnly="true" DataField="Text" HeaderText="bar" />
Also you can hide the column in edit mode as shown below.
C#:
protected void RadGrid1_ItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e)
{
 if (e.Item is GridEditableItem && e.Item.IsInEditMode )
 {
   GridEditableItem item = (GridEditableItem)e.Item;
   TextBox txtbox = (TextBox)item["Text"].Controls[0] as TextBox;
   txtbox.Visible = false;
 }
}

Thanks,
Shinu.
Tags
Grid
Asked by
YKP
Top achievements
Rank 1
Answers by
Shinu
Top achievements
Rank 2
YKP
Top achievements
Rank 1
Share this question
or