在Ext.JS中禁用命令列按钮

时间:2018-10-31 18:16:18

标签: javascript c# asp.net-mvc extjs ext.net

我在.cshtml文件中有一个具有以下网格视图的Ext.NET/Ext.JS MVC项目:

@(x.Viewport()
    .ID("MyViewport")
    .Items(x.GridPanel()
        .ID("MyListGrid")
        .View(x.GridView()
            .GetRowClass(a =>
            {
                a.Args = new[] { "record" };
                a.Fn = "MyJs.renderInactiveRow";
            })
            .ID("MyGrid")
            .Store(x.Store()
                .AutoLoad(true)
                .Proxy(x.AjaxProxy()
                    .Url(Url.Action("GetList", "Home"))
                    .Reader(x.JsonReader().RootProperty("data")))
                .Model(x.Model()
                    .Fields(
                        x.ModelField()
                            .Name("Name")
                            .Type(ModelFieldType.String),
                        x.ModelField()
                            .Name("Id")
                            .Type(ModelFieldType.Int),
                        x.ModelField()
                            .Name("IsActive")
                            .Type(ModelFieldType.Boolean))))
            .ColumnModel(
                x.Column()
                    .DataIndex("Name")
                x.CommandColumn()
                    .DisabledCls("non-viewable")
                    .Commands(
                        x.GridCommand()
                            .CommandName("Run")
                            .IconCls("far fa-play-circle")
                            .Cls("btn-action")
                            .Text(Model.RunButtonText))))))

我的JavaScript文件具有以下代码:

renderInactiveRow: function(record) {
    return record.data.IsActive ? null : "inactive non-viewable";
}

inactive类对应于一个.css文件,该文件将更改网格行的背景颜色。到目前为止,这部分有效。现在,我试图使此功能也禁用命令列中的按钮,而我似乎无法实现。我尝试将渲染器添加到列中:

renderRunBtn: function(value, metadata, record) {
    if (!record.data.IsActive) {
        metadata.tdCls = "non-viewable";
    }

    return value;
}

但是这也没有帮助。似乎metadata(单元格引用实际上没有包含按钮)而是连接到了列。那么,如何获得此按钮以将其禁用?还是有更好的方法来做到这一点?

0 个答案:

没有答案