问题编程设置列设置为只读在Telerik的radgrid控件
题
我在我的Page_Load处理程序中使用下面的代码试图动态让某些列只读在运行时:
GridNumericColumn gncp = grid.MasterTableView.GetColumn("ActualProduction") as GridNumericColumn;
if (gncp != null)
{
gncp.ReadOnly = true;
}
然而,如果柱是在网格中的最后一列上面的代码才起作用。如果我有第二个尝试持续,或列进一步离开,在该行的编辑命令不再起作用。不会抛出异常,并且EditCommand火灾,但是这是党停止在那里。
我怀疑我可能会改变在页面生命周期错了地方电网,但我真的不想开始寻找通过试错了地方。我使用grid_NeedDataSource
,而不是在页面加载绑定我的网格。任何想法?
解决方案
尝试设置网格的预渲染处理程序内的只读状态。我觉得这是更合适的地方来做到这一点。更多关于自定义列这里。
迪克
其他提示
这是我使用的是什么ASP.NET MVC 3 Telerik的网格。我还没有改变列的顺序问题。很显然,我使用Razor视图引擎。我希望这有助于。
@(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