Problema impostazione di programmazione colonne di sola lettura su un Telerik RadGrid

StackOverflow https://stackoverflow.com/questions/1708982

  •  19-09-2019
  •  | 
  •  

Domanda

Sto cercando di fare in modo dinamico alcune colonne di sola lettura in fase di esecuzione utilizzando il seguente codice nel mio gestore Load:

                GridNumericColumn gncp = grid.MasterTableView.GetColumn("ActualProduction") as GridNumericColumn;
                if (gncp != null)
                {
                    gncp.ReadOnly = true;
                }

Tuttavia, il codice sopra funziona solo se la colonna è l'ultima colonna della griglia. Se provo con il penultimo, o le colonne più a sinistra, il comando Modifica sulla riga non funziona più. Non viene generata un'eccezione, ei fuochi EditCommand, ma è lì che si ferma il partito.

Ho il sospetto che io possa essere la modifica del reticolo nel posto sbagliato nel ciclo di vita della pagina, ma io davvero non voglio iniziare a cercare il posto giusto per tentativi ed errori. Mi legano la mia griglia utilizzando grid_NeedDataSource, non nel caricamento della pagina. Tutte le idee?

È stato utile?

Soluzione

Prova a impostare lo stato di sola lettura all'interno del gestore PreRender della griglia. Penso che questo sia più appropriato luogo per farlo. Di più su personalizzazione colonne qui .

Dick

Altri suggerimenti

questo è quello che sto usando per ASP.NET MVC 3 Telerik griglia. Non ho avuto problemi cambiando l'ordine delle colonne. Ovviamente sto utilizzando il motore di visualizzazione Razor. Spero che questo aiuta.

  @(Html.Telerik().Grid(Model)
    .Name("catGrid")
    .DataKeys(k => k.Add(o => o.cat_id))
    .Columns(columns =>  
    {
        columns.Bound(m => m.cat_id).ReadOnly(true).Visible(false);
        columns.Bound(m => m.tenant_id).ReadOnly(true).Visible(false);
        columns.Bound(m => m.date_added).ReadOnly(true).Visible(false);
        columns.Bound(m => m.category_name).Title("Category Name").Width(350);
        columns.Bound(m => m.status_cd).Title("Status").Width(150);
        columns.Command(c => 
        {
            c.Edit();
            c.Delete();
        }).Width(250);
    })
    .DataBinding(b => b.Ajax()
        .Select("AjaxGridSelect", "Category")
        .Insert("GridInsert", "Category")
        .Update("GridUpdate", "Category")
        .Delete("GridDelete", "Category")
    )
    .ToolBar(t => 
    {
        t.Insert();
    })
    .Pageable(paging => paging.PageSize(20)
        .Style(GridPagerStyles.NextPreviousAndDropDown)
        .Position(GridPagerPosition.Both)
    )
    .Sortable()
    .Filterable()
  )
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top