我有一个剑道网格,如下所示:
@(Html.Kendo().Grid<SDB.Models.NettoVergelijking.Dienstverband>()
.Name("overzicht-grid")
.AutoBind(false)
.Columns(columns =>
{
columns.Bound(d => d.Naam).Title("Medewerker").ClientTemplate("<span title='${Naam}'>${Naam}</span>").Width(300)
.Filterable(f =>
{
f.Extra(false);
f.Operators(op =>
{
op.ForString(str =>
{
str.Clear().Contains("Bevat");
});
});
});
columns.Bound(d => d.Contractvorm).Title("Contractvorm").ClientTemplate("<span title='${Contractvorm}'>${Contractvorm}</span>").Width(200).Filterable(ftb => ftb.Multi(true)); ;
columns.Bound(d => d.Run1.Netto).Title("Periode 1").Filterable(true).HtmlAttributes(new { style = "text-align:right;" }).Width(220).ClientTemplate("# if (Run1.Netto != 0) { # #= kendo.toString(Run1.Netto, 'n2') # # } #").HeaderHtmlAttributes(new { style = "text-align:right;" });
columns.Bound(d => d.Run2.Netto).Title("Periode 2").Filterable(true).HtmlAttributes(new { style = "text-align:right;" }).Width(220).ClientTemplate("# if (Run2.Netto != 0) { # #= kendo.toString(Run2.Netto, 'n2') # # } #").HeaderHtmlAttributes(new { style = "text-align:right;" });
columns.Bound(d => d.Verschil).Filterable(false).HtmlAttributes(new { style = "text-align:right;", @class = "NettoVergelijkingVerschil" }).ClientTemplate("# if (Verschil != 0) { # #= kendo.toString(Verschil, 'n2') # # } else { # 0,00 # } #").Width(165).Format("{0:#.00}").HeaderHtmlAttributes(new { style = "text-align:right;" });
})
.Filterable(f => f.Mode(GridFilterMode.Menu))
.Sortable()
.Pageable(pager => pager.PageSizes(new List<object> { 25, 50, 100, 200, 500 }))
.ClientDetailTemplateId("overzicht-grid-details")
.Excel(e => e.AllPages(true))
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(50)
.ServerOperation(false)
.Model(model =>
{
model.Id(d => d.Id);
model.Field(f => f.Naam);
model.Field(f => f.Contractvorm);
model.Field(f => f.Run1.Netto);
model.Field(f => f.Run2.Netto);
})
.Read(r => r.Action("GetOverzicht", "NettoVergelijking").Data("getData"))
.Sort(d => d.Add(a => a.Verschil).Descending())
)
)
我有一个开关切换按钮,如下所示:
$("#euro-switch").kendoMobileSwitch({
onLabel: "%",
offLabel: "€",
change: function (e) {
var label = e.sender.value() ? e.sender.options.onLabel : e.sender.options.offLabel.toString();
var inpbox = $('#SignalThreshold').data("kendoNumericTextBox");
console.log(inpbox)
inpbox.setOptions(
{
format: "\\" + label + "\\ #",
decimals: 3
});
inpbox.value(inpbox.value());
}
});
所以你可以在euro和procent之间切换。
我有一个这样的课程:
public class Overzicht
{
[XmlArrayItem("Dvb")]
public List<Dienstverband> Dienstverbanden { get; set; }
}
public class Dienstverband
{
[XmlAttribute("Id")]
public int Id { get; set; }
public string Naam { get; set; }
public string Contractvorm { get; set; }
[XmlElement("Run1")]
public RunGegevens Run1 { get; set; }
[XmlElement("Run2")]
public RunGegevens Run2 { get; set; }
public decimal Verschil
{
get
{
{
return Run1.Netto - Run2.Netto;
}
}
}
public decimal VerschilPercentage
{
get
{
return Run1.Netto == 0 ? 0 : ((Run1.Netto - Run2.Netto)/Run1.Netto)*100;
}
}
}
public class RunGegevens
{
public decimal Netto { get; set; }
public decimal Herr { get; set; }
}
你看到了一个方法:
verschil和verschilPercentage。所以现在我想在Verschil和VerschilPercentage之间切换。这样用户就可以看到欧元的金额,但也可以按百分比更改视图。
但是怎么做?
谢谢
那么如何切换网格:d.Verschil
和d.VerschilPercentage
?
谢谢
我现在就这样:
$("#euro-switch").kendoMobileSwitch({
onLabel: "%",
offLabel: "€",
change: function (e) {
var label = e.sender.value() ? e.sender.options.onLabel : e.sender.options.offLabel.toString();
var grid = $("#overzicht-grid").data("kendoGrid");
if (e.checked) {
grid.hideColumn("Verschil");
grid.showColumn("VerschilPercentage");
}
else {
grid.hideColumn("VerschilPercentage");
grid.showColumn("Verschil");
}
var inpbox = $('#SignalThreshold').data("kendoNumericTextBox");
inpbox.setOptions(
{
format: "\\" + label + "\\ #",
decimals: 2
});
inpbox.value(inpbox.value());
}
});
但是ProcentVerschil列将不可见
答案 0 :(得分:0)
生成两列但一次只显示一列。
1)更新网格视图,添加列(必要时进行调整):
columns.Bound(d => d.VerschilPercentage).Hidden().Filterable(false).HtmlAttributes(new { style = "text-align:right;", @class = "NettoVergelijkingVerschil" }).ClientTemplate("# if (VerschilPercentage != 0) { # #= kendo.toString(VerschilPercentage, 'n2') # # } else { # 0,00 # } #").Width(165).Format("{0:#.00}").HeaderHtmlAttributes(new { style = "text-align:right;" });
2)更新交换机的更改处理程序:
change: function (e) {
// Whatever the other bits do... probably keep them, and add:
var grid = $("#overzicht-grid").data("kendoGrid");
if (e.checked) {
grid.hideColumn("Verschil");
grid.showColumn("VerschilPercentage");
}
else {
grid.hideColumn("VerschilPercentage");
grid.showColumn("Verschil");
}
}
当然未经测试。