2012-01-08 54 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; 
    } 
} 
相關問題