2012-01-08 93 views
3

我有一个Telerik RadGrid,它有三个绑定列和一个按钮列。我想让用户只在一个绑定列中编辑值。用户可以添加一条新记录,因此我无法将两个绑定列设置为只读。无论如何,我可以在ASPX中做到这一点,或者我必须在代码背后做到这一点?我有一些正在工作的代码,但它不是最好的。Telerik RadGrid在编辑模式下将BoundColumn设置为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',而不是'或',几乎总是。 – Ryan 2012-01-08 01:22:48

回答

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 2012-05-08 14:31:05

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; 
    } 
} 
相关问题