3

I have a Telerik RadGrid that has three bound columns and one button column. I would like to let the user edit the values in only one of the bound columns. The user can add a new record so i can't set the two bound column to read only. Is there anyway i can do this in the ASPX or do i have to do it in the code behind? I have some code that is working but it is not the best.

Here's my code:

Case "Edit"
    Dim aoeAnswerCode As GridBoundColumn = CType(e.Item.OwnerTableView.GetColumn("aoeAnswerCode"), GridBoundColumn)
    aoeAnswerCode.ReadOnly = True

Case "Update", "PerformInsert"
    For Each column As GridColumn In e.Item.OwnerTableView.RenderColumns
        If TypeOf column Is IGridEditableColumn Or column.UniqueName = "aoeAnswerCode" Then
Jayesh Goyani
  • 11,008
  • 11
  • 30
  • 50
Jefferson
  • 173
  • 2
  • 12
  • 32

3 Answers3

8

Simply set the ReadOnly property to true. See the example below:

<telerik:GridBoundColumn DataField="Datetime" HeaderText="Date" 
 DataFormatString="{0:MM/dd/yyyy}" ReadOnly="True">  
</telerik:GridBoundColumn>
Picrofo Software
  • 5,475
  • 3
  • 23
  • 37
say
  • 81
  • 1
  • 1
7

.aspx page code

 <telerik:GridBoundColumn DataField="ID" UniqueName="ID" HeaderText="ID">
                </telerik:GridBoundColumn>

aspx.cs page code

protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
{
    if (e.Item.IsInEditMode && e.Item is GridEditableItem)
    {
        if (e.Item.ItemIndex == -1)
        {
            // insert
            GridEditableItem item = e.Item as GridEditableItem;

        }
        else
        {
            // edit
            GridEditableItem item = e.Item as GridEditableItem;
            (item["ID"].Controls[0] as TextBox).ReadOnly = true;
        }

    }
}
Jayesh Goyani
  • 11,008
  • 11
  • 30
  • 50
1
protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
{
    if (e.Item.IsInEditMode && e.Item is GridEditFormItem)
    {
            // edit
            GridEditFormItem item = e.Item as GridEditFormItem;
            (item["column"].Controls[0] as TextBox).Enabled = false;
    }
}
Nikolay Kostov
  • 16,433
  • 23
  • 85
  • 123
Rahul
  • 11
  • 1