对 Telerik 扩展网格进行排序时,RowAction 样式丢失
RowAction styles lost while sorting Telerik extension grid
我正在为 ASP.NET MVC 使用来自 Telerik Extensions 的网格控件。我已经使用 Ajax 绑定在局部视图中加载了网格。当我对网格列进行排序时,在 RowAction 中指定的样式丢失了。
@(Html.Telerik().Grid<MySite.DTO.CaseDto>(Model.Cases)
.Name("CasesGrid")
.HtmlAttributes(new { style = "width: 1000px;" })
.DataBinding(dataBinding => dataBinding.Ajax()
.OperationMode(GridOperationMode.Client)
.Select("DI_UrgentCases_AjaxRead", "Dashboard")
)
我正在使用 RowAction 根据特定单元格的值突出显示某些行。
.RowAction(row =>
{
if (row.DataItem.IsUrgent)
{
row.HtmlAttributes["style"] = "background:#FFBABA";
}
})
我尝试了http://www.telerik.com/forums/ajax-binding-and-rowaction-conflict-中给出的建议,但没有用。我尝试在客户端重新绑定网格,但是当我这样做时,排序后的网格出现在新页面中而不是局部视图中。
请帮忙!
终于,我找到了解决问题的方法。我的问题是每次我对网格进行排序时,所有渲染和事件绑定都会丢失。每次使用 ajax 绑定重新绑定网格时,它只返回数据并加载到网格中。
要保留任何 css 样式和事件绑定,我必须再次应用 css 并在数据绑定到网格后重新绑定事件。
Telerik 扩展提供了一个名为 "OnDataBound" 的客户端事件,当网格通过 ajax 或网络服务进行数据绑定时会调用该事件。 (参考:Client Events for Telerik Extensions Grid
@(Html.Telerik().Grid<MySite.DAL.DTO.UserDto>(Model.Users)
.Name("MyUsersGrid")
.ClientEvents( events => events.OnDataBound("grid_OnDataBound"))
function grid_OnDataBound(e) { code for rebind, apply css...}
然后在函数 grid_OnDataBound() 中,我们可以定义重新绑定事件的代码,并在数据绑定上引发此事件时应用 css。
我正在为 ASP.NET MVC 使用来自 Telerik Extensions 的网格控件。我已经使用 Ajax 绑定在局部视图中加载了网格。当我对网格列进行排序时,在 RowAction 中指定的样式丢失了。
@(Html.Telerik().Grid<MySite.DTO.CaseDto>(Model.Cases)
.Name("CasesGrid")
.HtmlAttributes(new { style = "width: 1000px;" })
.DataBinding(dataBinding => dataBinding.Ajax()
.OperationMode(GridOperationMode.Client)
.Select("DI_UrgentCases_AjaxRead", "Dashboard")
)
我正在使用 RowAction 根据特定单元格的值突出显示某些行。
.RowAction(row =>
{
if (row.DataItem.IsUrgent)
{
row.HtmlAttributes["style"] = "background:#FFBABA";
}
})
我尝试了http://www.telerik.com/forums/ajax-binding-and-rowaction-conflict-中给出的建议,但没有用。我尝试在客户端重新绑定网格,但是当我这样做时,排序后的网格出现在新页面中而不是局部视图中。
请帮忙!
终于,我找到了解决问题的方法。我的问题是每次我对网格进行排序时,所有渲染和事件绑定都会丢失。每次使用 ajax 绑定重新绑定网格时,它只返回数据并加载到网格中。 要保留任何 css 样式和事件绑定,我必须再次应用 css 并在数据绑定到网格后重新绑定事件。
Telerik 扩展提供了一个名为 "OnDataBound" 的客户端事件,当网格通过 ajax 或网络服务进行数据绑定时会调用该事件。 (参考:Client Events for Telerik Extensions Grid
@(Html.Telerik().Grid<MySite.DAL.DTO.UserDto>(Model.Users)
.Name("MyUsersGrid")
.ClientEvents( events => events.OnDataBound("grid_OnDataBound"))
function grid_OnDataBound(e) { code for rebind, apply css...}
然后在函数 grid_OnDataBound() 中,我们可以定义重新绑定事件的代码,并在数据绑定上引发此事件时应用 css。