Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# DotVVM-在GridView中为行着色的可能性有哪些?_C#_Gridview_Dotvvm - Fatal编程技术网

C# DotVVM-在GridView中为行着色的可能性有哪些?

C# DotVVM-在GridView中为行着色的可能性有哪些?,c#,gridview,dotvvm,C#,Gridview,Dotvvm,我试图根据行中基础项的状态(Enumvalue)为GridView中的行着色,但我在文档中找到的解决方案似乎都不适合我 对于GridView public GridViewDataSet<DTO> Items { get; set; } 但它不起作用 除了上面描述的以外,还有其他方法给GridView的行着色吗?应该将BootstrapColorenum视为表示层。您是对的,在内部微服务或应用程序的较低层中使用它是不明智的 来自较低层的DTO应该包含关于正在发生的事情的信息,而不关

我试图根据行中基础项的状态(
Enum
value)为
GridView
中的行着色,但我在文档中找到的解决方案似乎都不适合我

对于
GridView

public GridViewDataSet<DTO> Items { get; set; }
但它不起作用


除了上面描述的以外,还有其他方法给GridView的行着色吗?

应该将
BootstrapColor
enum视为表示层。您是对的,在内部微服务或应用程序的较低层中使用它是不明智的

来自较低层的DTO应该包含关于正在发生的事情的信息,而不关心它将如何显示给用户。我希望使用一个枚举值,比如
Paid
Unpaid
cancelled
等,或者使用一组
bool
标志-
IsPaid
iscancelled

在表示层中,有两个选项:

  • 将DTO投影到另一个DTO(手动或使用AutoMapper,例如),该DTO将包含
    BootstrapColor
    enum值

  • 使用DotVVM数据绑定中的表达式在标记中进行转换

  • 对于简单的情况,我会选择第二个选项

    的正确语法如下:

    <RowDecorators>
        <bs:ColorDecorator Color="{value: State == OrderState.Confirmed ? BootstrapColor.Success : BootstrapColor.Danger }" />
    </RowDecorators>
    
    这将根据
    IsActive
    IsPaid
    属性的值(它们必须是
    bool
    )在行中添加
    active
    paid
    CSS类

    <RowDecorators>
        <bs:ColorDecorator Color="{value: State == OrderState.Confirmed ? BootstrapColor.Success : BootstrapColor.Danger }" />
    </RowDecorators>
    
    <RowDecorators>
        <dot:Decorator class-active="{value: IsActive}" class-paid="{value: IsPaid}" />
    </RowDecorators>