2
我正在嘗試使計算列的網格。 我的問題是,當我更改網格時不重新計算列。劍道UI網格,計算列
頁(asp.net MVC):
@(Html.Kendo().Grid<VistaFlowDTO>()
.Name("Grid")
.Columns(columns =>
{
columns.Bound(o => o.Country).ClientTemplate("#=model.renderCodeList(Country)#");
columns.Bound(o => o.Plant).ClientTemplate("#=model.renderCodeList(Plant)#");
columns.Bound(o => o.Flow).Sortable(false).Filterable(false).ClientTemplate("#=model.renderFlow(Flow)#");
columns.Bound(o => o.State);
columns.Bound(o => o.ConditionStatus).ClientTemplate("#=model.renderCodeList(ConditionStatus)#");
columns.Bound(o => o.DateOfUpdate);
})
.Model(model =>
{
model.Id(p => p.Id);
model.Field(p => p.Flow).DefaultValue((LeftRightDTO)ViewData["Value"]).Editable(false);
})
.Events(e=> e.Save("model.changeGrid"))
的javascript: //模板
function renderFlow(data) {
var left = $(data).prop('Left');
var right = $(data).prop('Right');
return renderLeftRight(left, right, '_');
}
function renderLeftRight(left, right, separator) {
if (!left && !right)
return '';
return "<div class='leftAndRight'><span class='left'>" + left + "</span>" + separator + "<span class='right'>" + right + "</span></div>";
}
//當電網發生變化
function changeGrid(e) {
if (e.values.Country || e.values.Plant) {
var c = e.values.Country || e.model.Country;
var p = e.values.Plant || e.model.Plant;
e.model.set("Flow.Left", c);
e.model.set("Flow.Right", p);
}
}
流量(C#類中調用):
public class LeftRightDTO
{
public string Left { get; set; }
public string Right { get; set; }
public LeftRightDTO()
{
}
public LeftRightDTO(string left, string right)
{
this.Left = left;
this.Right = right;
}
}
只有工作的例子,我發現了這個:http://jsfiddle.net/qA8QX/