2012-01-08 5 views
3

У меня есть Telerik RadGrid с тремя связанными столбцами и одним столбцом кнопки. Я хочу, чтобы пользователь редактировал значения только в одном из связанных столбцов. Пользователь может добавить новую запись, поэтому я не могу установить для двух связанных столбцов только чтение. Есть ли в любом случае я могу сделать это в ASPX или мне нужно сделать это в коде? У меня есть код, который работает, но это не самое лучшее.Telerik RadGrid set BoundColumn to ReadOnly в режиме редактирования

Вот мой код:

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 
+0

код Совет: Используйте 'OrElse' вместо' Or', почти всегда. – Ryan

ответ

5

.aspx кодовая страница

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

aspx.cs код

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; 
     } 

    } 
} 
6

страницы Просто установите ReadOnly свойство true. Смотрите пример ниже:

<telerik:GridBoundColumn DataField="Datetime" HeaderText="Date" 
DataFormatString="{0:MM/dd/yyyy}" ReadOnly="True"> 
</telerik:GridBoundColumn> 
+0

say

0
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; 
    } 
} 
Смежные вопросы