Jquery 在按钮上显示文本并更改按钮剑道UI的颜色

Jquery 在按钮上显示文本并更改按钮剑道UI的颜色,jquery,kendo-ui,kendo-grid,kendo-asp.net-mvc,Jquery,Kendo Ui,Kendo Grid,Kendo Asp.net Mvc,我想根据数据库中的值在按钮上显示文本 因此,每一行的按钮文本都不同(例如:在用、过期、30天过期) 1) 如何在剑道行的按钮中显示文本 2) 我想根据以上3个值更改按钮的颜色。(例如:在用-绿色,过期-红色,30天过期-黄色) 我想在下面的代码中的自定义命令按钮中显示该按钮 我该怎么做 @(Html.Kendo().Grid(Model) .Name("grid") .Columns(columns => { columns.

我想根据数据库中的值在按钮上显示文本

因此,每一行的按钮文本都不同(例如:在用、过期、30天过期)

1) 如何在剑道行的按钮中显示文本

2) 我想根据以上3个值更改按钮的颜色。(例如:在用-绿色,过期-红色,30天过期-黄色)

我想在下面的代码中的自定义命令按钮中显示该按钮

我该怎么做

@(Html.Kendo().Grid(Model)
       .Name("grid")
       .Columns(columns =>
       {
           columns.Bound(c => c.UserName).Title("User").Filterable(false);               
           columns.Bound(c => c.Role).Title("Role");               
           //columns.Command(command => command.Custom().Click("showDetails"));
       })
       .HtmlAttributes(new { style = "height: 500px;" })
       .Sortable()
       .Scrollable(x => x.Height(400))
       .Filterable()
       .Pageable(x => x.Enabled(true).PreviousNext(false).PageSizes(true))
   )

看起来您正在对网格进行服务器端绑定。在这种情况下,需要使用列生成器的Template()方法

我试着复制你的场景。我有一个定义如下的模型:

 public class StatusModel
    {
        public string Col1 { get; set; }
        public string Status { get; set; }
    }
然后在我的控制器中,我正在创建一个包含以下3项的列表:

public ActionResult Index()
        {
            var data = new List<StatusModel>()
            {
                new StatusModel {Col1="Row 1",Status="In Service" },
                new StatusModel {Col1="Row 2",Status="Expire" },
                new StatusModel {Col1="Row 3",Status="30 days Expire" },
            };
                return View(data);
        }
public ActionResult Index()
{
变量数据=新列表()
{
新的状态模型{Col1=“Row 1”,Status=“In Service”},
新的StatusModel{Col1=“Row 2”,Status=“Expire”},
新状态模型{Col1=“第3行”,Status=“30天到期”},
};
返回视图(数据);
}
在视图中,您需要如何定义网格:

@(Html.Kendo().Grid(Model)
                  .Name("kGrid")
                  .Columns(columns =>
                  {
                      columns.Bound(c => c.Col1).Title("Column 1");
                      columns.Bound(c => c.Status).Template(@<text>
                        @if (@item.Status == "In Service")
                        {
                            @Html.Kendo().Button().Name("kButton").Content(@item.Status).HtmlAttributes(new { style = "background-color:green;color:white;width:150px" })
                        }
                        else if (@item.Status == "Expire")
                        {
                            @Html.Kendo().Button().Name("kButton").Content(@item.Status).HtmlAttributes(new { style = "background-color:red;color:white;width:150px" })
                        }
                        else
                        {
                            @Html.Kendo().Button().Name("kButton").Content(@item.Status).HtmlAttributes(new { style = "background-color:orange;color:white;width:150px" })
                        }
                    </text>);
                  })
            )
@(Html.Kendo().Grid(模型)
.名称(“kGrid”)
.列(列=>
{
columns.Bound(c=>c.Col1).Title(“Column 1”);
columns.Bound(c=>c.Status).Template(@
@如果(@item.Status==“在用”)
{
@Html.Kendo().Button().Name(“kButton”).Content(@item.Status).HtmlAttributes(新{style=“background color:green;color:white;width:150px”})
}
如果(@item.Status==“到期”),则为else
{
@Html.Kendo().Button().Name(“kButton”).Content(@item.Status).HtmlAttributes(新{style=“background color:red;color:white;width:150px”})
}
其他的
{
@Html.Kendo().Button().Name(“kButton”).Content(@item.Status).HtmlAttributes(新{style=“background color:orange;color:white;width:150px”})
}
);
})
)
您可以通过执行if-else来进一步优化代码,以确定可以应用的CSS类,最后调用Kendo.Button()并将CSS类作为HTML属性传递


希望这有帮助

听起来像是ClientTemplate的工作