Problem Spalten programmatisch Einstellung schreibgeschützt auf einem Telerik RadGrid

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

  •  19-09-2019
  •  | 
  •  

Frage

Ich versuche, dynamisch bestimmte Spalten nur lesbar zur Laufzeit mit dem folgenden Code in meinen Page_Load-Handler zu machen:

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

Allerdings ist der obige Code funktioniert nur, wenn die Spalte die letzte Spalte in der Tabelle ist. Wenn ich mit dem zweiten Versuch zu halten, oder Spalten weiter nach links, arbeitet der Befehl Bearbeiten auf der Zeile nicht mehr. Keine Ausnahme ausgelöst, und die EditCommand feuert, aber das ist, wo die Partei hält.

Ich vermute, ich kann das Gitter an der falschen Stelle im Lebenszyklus Seite werden zu modifizieren, aber ich mag wirklich nicht durch Versuch und Irrtum Suche nach dem richtigen Ort zu starten. Ich band meine Gitter grid_NeedDataSource verwenden, nicht in Seite zu laden. Irgendwelche Ideen?

War es hilfreich?

Lösung

Versuchen Sie, den Nur-Lese-Status innerhalb des PreRender Handler des Gitters einstellen. Ich denke, das geeignetere Stelle ist, das zu tun. Mehr über Anpassung der Spalten hier .

Dick

Andere Tipps

das ist, was ich verwende für ASP.NET MVC 3 Telerik Grid. Ich habe keine Probleme Ändern der Reihenfolge der Spalten hatte. Offensichtlich ich bin mit der Razor-Ansicht-Engine. Ich hoffe, das hilft.

  @(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()
  )
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top