我们的Kendo Grid DataSource看起来像这样:
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(10)
.Events(events => events.Error("error_handler"))
.Model(model =>
    {
     model.Id(m => m.MilestoneId);
     model.Field(m => m.ProjectName).Editable(false);
     model.Field(m => m.Name).Editable(false);
     model.Field(m => m.Status).Editable(??????);
    })
对于最后一个字段(Status),我们需要提供一个bool值Editable.但是,我希望这个值来自我们模型上的属性值.该模型有一个名为的属性IsAvailable,我希望bool成为该值.
基本上,如果IsAvailable模型中为true,我们只希望Status列可编辑.
该属性的模型上的C#代码是:
public bool IsAvailable{ get; set; }
有谁知道访问此值的正确语法?
我试过了:
model.Field(m => m.Status).Editable((model.Field(m => m.IsAvailable).ToString()).AsBool());
编译但不起作用; 对于所有情况,它总是返回false.
使用Timothy Walter的链接,我通过使用他建议的编辑事件找到了解决问题的方法.
这是我的代码最终看起来像:
.Events(events =>
    {
        events.Edit("edit_handler");
    })
.DataSource(dataSource => dataSource
    .Ajax()
    .PageSize(10)
    .Events(events => events.Error("error_handler"))
    .Model(model =>
        {
            model.Id(m => m.MilestoneId);
            model.Field(m => m.ProjectName).Editable(false);
            model.Field(m => m.Name).Editable(false);
            model.Field(m => m.Status).Editable(true);
        })
而Javascript是:
<script type="text/javascript" language="javascript">
function edit_handler(e) {
    if (!e.model.isNew()) {            
        var statusDropDown = e.container.find("input[name=Status]").data("kendoDropDownList");
        if (!e.model.IsAvailable) {
            statusDropDown.enable(false);
        }
    }
</script>
| 归档时间: | 
 | 
| 查看次数: | 7730 次 | 
| 最近记录: |