Tengo un Telerik RadGrid que tiene tres columnas enlazadas y un botón de la columna. Me gustaría permitir al usuario modificar los valores en una sola de las columnas enlazadas. El usuario puede agregar un nuevo registro, así que no puedo configurar los dos columna dependiente de sólo lectura. Existe de todos modos me puede hacer esto en el ASPX o tengo que hacerlo en el código detrás? Tengo algo de código que se está trabajando, pero no es el mejor.

Aquí está mi código:

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
  • Código sugerencia: Utilice OrElse en lugar de Or, casi siempre.
InformationsquelleAutor Jefferson | 2012-01-08

3 Comentarios

  1. 7

    Simplemente establecer el ReadOnly propiedad true. Véase el siguiente ejemplo:

    <telerik:GridBoundColumn DataField="Datetime" HeaderText="Date" 
     DataFormatString="{0:MM/dd/yyyy}" ReadOnly="True">  
    </telerik:GridBoundColumn>
    • <telerik:GridBoundColumn DataField=»Grupo» HeaderText=»Grupo» ReadOnly=»True»> </telerik:GridBoundColumn>
    • En mi caso, esto también oculta la columna en radgrid‘s Edit Form y no me deja utilizarlo como parámetro en SqlDataSource.
  2. 6

    .página aspx código

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

    aspx.cs código de la página

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

Dejar respuesta

Please enter your comment!
Please enter your name here