有条件地在WebGrid

时间:2018-02-08 20:16:16

标签: .net asp.net-mvc html5 webgrid

1)我试图有条件地将一个列添加到WebGrid中。它是一个锚标签(),里面有一个img标签()。我该怎么办?

2)仅当2个参数不为null(byte [] item.Boleto,string item.Nome_Arquivo)时才会显示该列。如果没有通过sql查询选择值,我将它们的值都设置为null。因此,我只需要检查两者是否都不为空,然后显示列。但同样,我该如何检查呢?我在哪里可以在WebGrid结构中放置一个条件语句或类似的东西(例如三元等),而不会破坏其余部分?

如果需要任何翻译以便了解我的问题,请告诉我

我希望“转换”为WebGrid模式的行:

grid.Column("", "", format:  @<a href="data:application/pdf;charset=utf-8;base64,@System.Convert.ToBase64String(item.Boleto).ToString()" target="_blank" download="@item.Nome_Arquivo" type="application/pdf" rel="noopener noreferrer"><img src="@Url.Content("~/Content/images/download_arquivo.png")" alt="down" height="16" width="16" /></a>)

这里是完整的网格(不是必需的,但我是为了清晰起见):

@
@{   
@grid.GetHtml(
    alternatingRowStyle: "linha-Alternada",
    htmlAttributes: new { id = "gridListagemTituloReceber" },
    fillEmptyRows: true,
    columns: grid.Columns(


        grid.Column("", "", format:  @<a href="data:application/pdf;charset=utf-8;base64,@System.Convert.ToBase64String(item.Boleto).ToString()" target="_blank" download="@item.Nome_Arquivo" type="application/pdf" rel="noopener noreferrer"><img src="@Url.Content("~/Content/images/download_arquivo.png")" alt="down" height="16" width="16" /></a>),

        grid.Column("Tipo", ModelNames.PedidoPerfilClienteAbaTituloReceberViewModel_Tipo),
        grid.Column("Data_Emissao", ModelNames.PedidoPerfilClienteAbaTituloReceberViewModel_Data_Emissao,
            format: (item) => item.Data_Emissao == null ? "" : String.Format("{0:dd/MM/yyyy}", item.Data_Emissao)),
        grid.Column("Chave", ModelNames.PedidoPerfilClienteAbaTituloReceberViewModel_Chave),
        grid.Column("Numero_Titulo", ModelNames.PedidoPerfilClienteAbaTituloReceberViewModel_Numero_Titulo),
        grid.Column("Nota_Saida", ModelNames.PedidoPerfilClienteAbaTituloReceberViewModel_Nota_Saida),
        grid.Column("Data_Vencimento", ModelNames.PedidoPerfilClienteAbaTituloReceberViewModel_Data_Vencimento,
            format: (item) => item.Data_Vencimento == null ? "" : String.Format("{0:dd/MM/yyyy}", item.Data_Vencimento)),
        grid.Column("Valor", ModelNames.PedidoPerfilClienteAbaTituloReceberViewModel_Valor,
            format: (item) => item.Valor == null ? "" : String.Format("{0:N2}", item.Valor),
            style: "alinhado-Direita"),                
        grid.Column("Data_Baixa", ModelNames.PedidoPerfilClienteAbaTituloReceberViewModel_Data_Baixa,
            format: (item) => item.Data_Baixa == null ? "" : String.Format("{0:dd/MM/yyyy}", item.Data_Baixa)),
        grid.Column("Valor_Recebido", ModelNames.PedidoPerfilClienteAbaTituloReceberViewModel_Valor_Recebido,
            format: (item) => item.Valor_Recebido == null ? "" : String.Format("{0:N2}", item.Valor_Recebido),
            style: "alinhado-Direita"),
        grid.Column("Valor_Atualizado", ModelNames.PedidoPerfilClienteAbaTituloReceberViewModel_Valor_Atualizado,
            format: (item) => item.Valor_Atualizado == null ? "" : String.Format("{0:N2}", item.Valor_Atualizado),
            style: "alinhado-Direita"),
        grid.Column("Codigo_Especie", ModelNames.PedidoPerfilClienteAbaTituloReceberViewModel_Codigo_Especie),
        grid.Column("Descricao_Baixa", ModelNames.PedidoPerfilClienteAbaTituloReceberViewModel_Descricao_Baixa),
        grid.Column("Data_Devolucao", ModelNames.PedidoPerfilClienteAbaTituloReceberViewModel_Data_Devolucao,
            format: (item) => item.Data_Devolucao == null ? "" : String.Format("{0:dd/MM/yyyy}", item.Data_Devolucao)),
        grid.Column("Motivo_Devolucao", ModelNames.PedidoPerfilClienteAbaTituloReceberViewModel_Motivo_Devolucao)
    )
)

}

1 个答案:

答案 0 :(得分:0)

尝试

grid.Column("", "",
    @<text>
         @if (item.Boleto != null && item.Nome_Arquivo != null)
         {
            <a href="data:application/pdf;charset=utf-8;base64,@System.Convert.ToBase64String(item.Boleto).ToString()" target="_blank" download="@item.Nome_Arquivo" type="application/pdf" rel="noopener noreferrer"><img src="@Url.Content("~/Content/images/download_arquivo.png")" alt="down" height="16" width="16" /></a>
         }
     </text>),
相关问题