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

ReadOnly column in Edit Form?

3 Answers 184 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Rick
Top achievements
Rank 1
Rick asked on 01 Aug 2011, 02:27 PM

In the following extracted code, column 'Id' is not visible at all times.  Column 'AE' should be invisible, too.  However, column 'AE' appears in the EditForm despite event ItemDataBound event which sets both columns Visible = False.

How can I hide column AE?


<
telerik:RadGrid ID="rgHeader" runat="server" CellSpacing="0" DataSourceID="sdsHeader">

<MasterTableView AutoGenerateColumns="False" CommandItemDisplay="Top" DataSourceID="sdsHeader">

<CommandItemSettings ExportToPdfText="Export to PDF" AddNewRecordImageUrl="Images/new.png" AddNewRecordText="Add Header"></CommandItemSettings>

<Columns>

<telerik:GridButtonColumn Text="Select" CommandName="Select" UniqueName="Select" ItemStyle-Width="30px"></telerik:GridButtonColumn>

<telerik:GridEditCommandColumn></telerik:GridEditCommandColumn>

<telerik:GridBoundColumn DataField="AE" HeaderText="AE" SortExpression="AE" UniqueName="AE"></telerik:GridBoundColumn>

<telerik:GridBoundColumn DataField="Total" DataType="System.Int32" HeaderText="Total"

SortExpression="Total" UniqueName="Total">

</telerik:GridBoundColumn>

<telerik:GridBoundColumn DataField="Id" DataType="System.Int32" HeaderText="Id" ReadOnly="True"

SortExpression="Id" UniqueName="Id">

</telerik:GridBoundColumn>

</Columns>

<EditFormSettings>

<EditColumn UniqueName="EditCommandColumn1" FilterControlAltText="Filter EditCommandColumn1 column"></EditColumn>

</EditFormSettings>

</MasterTableView>

<HeaderContextMenu CssClass="GridContextMenu GridContextMenu_Default"></HeaderContextMenu>

</telerik:RadGrid>


Protected Sub rgHeader_ItemDataBound(sender As Object, e As Telerik.Web.UI.GridItemEventArgs) Handles rgHeader.ItemDataBound

  rgHeader.MasterTableView.GetColumn(

"Id").Visible = False

  rgHeader.MasterTableView.GetColumn(

"AE").Visible = False

 

End Sub

 

3 Answers, 1 is accepted

Sort by
0
Rick
Top achievements
Rank 1
answered on 01 Aug 2011, 02:50 PM
If I can't hide column 'AE', my requirements would allow Visible=True, but in a ReadOnly state, e.g. Label instead of Textbox control.

How might I do this?
0
Jayesh Goyani
Top achievements
Rank 2
answered on 01 Aug 2011, 06:55 PM
hi,

there are two way to achieve this.
Solution 1 :
<telerik:GridBoundColumn DataField="ID" HeaderText="ID" UniqueName="ID"></telerik:GridBoundColumn>
protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
        {
            if (e.Item is GridEditFormItem && e.Item.IsInEditMode && !e.Item.OwnerTableView.IsItemInserted)
            //if the item is about to edit
            {
                GridEditFormItem edititem = (GridEditFormItem)e.Item;
                TextBox txtboxID = edititem["ID"].Controls[0] as TextBox;
                txtboxID.ReadOnly = true;
            }
        }
 
Solution 2:
<telerik:GridTemplateColumn DataField="ID" HeaderText="ID" UniqueName="ID">
                        <ItemTemplate>
                            <%# Eval("ID") %>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:Label ID="lblIDEdit" runat="server" Text='<%# Eval("ID") %>'></asp:Label>
                        </EditItemTemplate>
                    </telerik:GridTemplateColumn>


Thanks,
Jayesh Goyani
0
Rick
Top achievements
Rank 1
answered on 01 Aug 2011, 07:24 PM
Thanks Jayesh!

These suggestions work well.
Tags
Grid
Asked by
Rick
Top achievements
Rank 1
Answers by
Rick
Top achievements
Rank 1
Jayesh Goyani
Top achievements
Rank 2
Share this question
or