屏蔽 kendo 网格中的指定列
Masking a specified column in kendo grid
这是我的网格初始化:
@(Html.Kendo().Grid<UT.CRM.ViewModels.DemoUserListViewModel> ()
.Name("demoUsers")
.Columns(columns =>
{
columns.Bound(c => c.CustomerName).Title("Ad Soyad").Filterable(ftb => ftb.Cell(cell => cell.Operator("contains")));
columns.Bound(c => c.Login).Title("Hesap").Filterable(ftb => ftb.Cell(cell => cell.Operator("contains")));
columns.Bound(c => c.DayCount).Title("Toplam Gün").Filterable(ftb => ftb.Cell(cell => cell.Operator("contains")));
columns.Bound(c => c.TradeCount).Title("Toplam İşlem").Filterable(ftb => ftb.Cell(cell => cell.Operator("contains")));
columns.Bound(c => c.RegistrationDate).Title("Kayıt").Format("{0:dd.MM.yyyy}").Filterable(ftb => ftb.Cell(cell => cell.Operator("eq")));
columns.Bound(c => c.Email).Title("E-Posta").Filterable(ftb => ftb.Cell(cell => cell.Operator("contains")));
columns.Bound(c => c.Phone).Title("Phone").Filterable(ftb => ftb.Cell(cell => cell.Operator("contains")));
})
.HtmlAttributes(new { style = "height: 690px;" })
.Scrollable()
.Sortable()
.Resizable(resize => resize.Columns(true))
.Filterable(ftb => ftb.Mode(GridFilterMode.Row))
.DataSource(dataSource => dataSource
.Ajax()
.Read(read => read.Action("GetDemoUsersReport", "Reports"))
)
)
如您所见,我有一列具有 phone 个值。我希望这些 phone 值的格式如下:
05356645879 -> ****664****
可能吗?
提前致谢,
尝试如下设置 ClientTemplate
:
columns.Bound(c => c.Phone).ClientTemplate(@"#: phone.replace(/^\d{4}|\d{4}$/g, \'****\') #").Title...
我无法用 ASP.Net 测试它,但 here is a demo 是纯 javascript。有什么问题请告诉我。
更新:我忘了说实现这一点的最好和更安全的方法是做同样的事情,但在你的服务器端。所以用户无法获取原始请求结果中的信息。但如果你觉得没必要,也没关系。
这是我的网格初始化:
@(Html.Kendo().Grid<UT.CRM.ViewModels.DemoUserListViewModel> ()
.Name("demoUsers")
.Columns(columns =>
{
columns.Bound(c => c.CustomerName).Title("Ad Soyad").Filterable(ftb => ftb.Cell(cell => cell.Operator("contains")));
columns.Bound(c => c.Login).Title("Hesap").Filterable(ftb => ftb.Cell(cell => cell.Operator("contains")));
columns.Bound(c => c.DayCount).Title("Toplam Gün").Filterable(ftb => ftb.Cell(cell => cell.Operator("contains")));
columns.Bound(c => c.TradeCount).Title("Toplam İşlem").Filterable(ftb => ftb.Cell(cell => cell.Operator("contains")));
columns.Bound(c => c.RegistrationDate).Title("Kayıt").Format("{0:dd.MM.yyyy}").Filterable(ftb => ftb.Cell(cell => cell.Operator("eq")));
columns.Bound(c => c.Email).Title("E-Posta").Filterable(ftb => ftb.Cell(cell => cell.Operator("contains")));
columns.Bound(c => c.Phone).Title("Phone").Filterable(ftb => ftb.Cell(cell => cell.Operator("contains")));
})
.HtmlAttributes(new { style = "height: 690px;" })
.Scrollable()
.Sortable()
.Resizable(resize => resize.Columns(true))
.Filterable(ftb => ftb.Mode(GridFilterMode.Row))
.DataSource(dataSource => dataSource
.Ajax()
.Read(read => read.Action("GetDemoUsersReport", "Reports"))
)
)
如您所见,我有一列具有 phone 个值。我希望这些 phone 值的格式如下:
05356645879 -> ****664****
可能吗?
提前致谢,
尝试如下设置 ClientTemplate
:
columns.Bound(c => c.Phone).ClientTemplate(@"#: phone.replace(/^\d{4}|\d{4}$/g, \'****\') #").Title...
我无法用 ASP.Net 测试它,但 here is a demo 是纯 javascript。有什么问题请告诉我。
更新:我忘了说实现这一点的最好和更安全的方法是做同样的事情,但在你的服务器端。所以用户无法获取原始请求结果中的信息。但如果你觉得没必要,也没关系。