如何在 kendo 网格声明中添加 IF 语句

How to add IF statements inside of a kendo grid declaration

我正在尝试为两个页面使用一个视图文件,页面中的功能非常相似但略有不同,因此我想使用相同的网格但在数据源中执行 if 语句以检查用户角色:

.DataSource(datasource => datasource
            .Ajax()
     if (User.IsInRole("Admin")) {
            .Read(read => read.Action(MVC.ControllerName.ActionNames.Read, MVC.Controller.Name).Data("function"))
     } else {
            .Read(read => read.Action(MVC.OtherController.ActionNames.OtherRead, MVC.Controller.Name).Data("function"))
     }

我得到了一堆预期的语法错误(例如),;预期)。

网格是使用@(Html.Kendo().Grid)....

声明的

如果您将代码更改为如下内容:

.DataSource(datasource => datasource
            .Ajax()
            .Read(read => {
                             if (User.IsInRole("Admin")) {
                              read.Action(MVC.ControllerName.ActionNames.Read, 
                                      MVC.Controller.Name).Data("function");
                            }
                            else
                            {
                            read.Action(MVC.OtherController.ActionNames.OtherRead, 
                                       MVC.Controller.Name).Data("function");
                            }

                           }

        )

那应该对你有用。重要的部分是将 decision 位放在读取中,如果您有不同的更新等,甚至放在顶层数据部分。