プログラムで読み取り専用にTelerik RadGridの列を設定することの問題
質問
私は私のPage_Loadハンドラーに次のコードを使用して、実行時に読み取り専用動的に特定の列を作るしようとしています:
GridNumericColumn gncp = grid.MasterTableView.GetColumn("ActualProduction") as GridNumericColumn;
if (gncp != null)
{
gncp.ReadOnly = true;
}
列は、グリッド内の最後のカラムである場合は、しかしながら、上記のコードは動作します。私は最後まで秒、またはさらに左の列にしようとすると、行の編集コマンドが機能しなくなりました。例外はスローされず、およびEditCommand火災が、当事者が停止したところ、それはですされます。
私は、ページのライフサイクルの間違った場所にグリッドを変更することができる疑うが、私は本当に試行錯誤によって適切な場所を探して起動する必要はありません。私はしません、ページの読み込みで、grid_NeedDataSource
を使用して、私のグリッドをバインドします。任意のアイデア?
解決
グリッドのPreRenderイベントハンドラ内で読み取り専用のステータスを設定してみてください。私は、これはそれを行うために、より適切な場所だと思います。列のカスタマイズの詳細ここを。
ディック
他のヒント
これは、私はASP.NET MVC 3 Telerikグリッドのために使用していますものです。私は、列の順序を変更する問題を持っていませんでした。もちろん、私はかみそりビューエンジンを使用しています。私はこのことができます願っています。
@(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()
)
所属していません StackOverflow