0

「dd-MM-yyyy」で日付を選択するにはフォーマーターが必要ですが、取得できません。さまざまな方法でテストしましたが、どれも機能しません。フィールドのフォーマット: DtFabricacao. DataTable を使用しており、Linq prórpio で日付をフォーマットしたい

Linq は以下のとおりです。

public static ResultadoListagemPadrao Grid(string orderna, string ordenaTipo, string filtro, int filtroID = 0)
{
    ERPContext db = new ERPContext();
    var resultado = new ResultadoListagemPadrao();
    var dados = db.ProdutoLote.ToListERP();
    var where = "";
    var id = 0;


    resultado.TotalRegistros = dados.Count();
    resultado.Dados =
        (from a in dados.AsQueryable()
         select new
         {
             a.ProdutoLoteID,
             a.Lote,
             a.Identificacao,                     
             a.DtFabricacao,                     
             a.DtValidade,
             a.QtdeAtual,
             a.QtdeEmUtilizacao
         })
        .Where(where, filtro)
        .OrderBy(orderna + " " + ordenaTipo);
    return resultado;
}

モデル:

public class ProdutoLote : IEntidadeBase
{
    [Key]
    public int ProdutoLoteID { get; set; }    
    public int ProdutoID { get; set; }
    public string Lote { get; set; }
    public string Identificacao { get; set; }
    public string Detalhe { get; set; }        
    public DateTime? DtFabricacao { get; set; }
    public DateTime? DtValidade { get; set; }    
    public decimal QtdeAtual { get; set; }
    public decimal QtdeEmUtilizacao { get; set; }            

    public int EmpresaID { get; set; }
    public string Fixo { get; set; }
    public string Status { get; set; }
    public string Apagado { get; set; }
    public DateTime? DtApagado { get; set; }
    public int UsuCad { get; set; }
    public DateTime DtCad { get; set; }
    public int UsuAlt { get; set; }
    public DateTime DtAlt { get; set; }
    public int UsuUltAlt { get; set; }
    public DateTime DtUltAlt { get; set; }    
    [ForeignKey("UsuCad")]
    public virtual Usuario UsuarioCad { get; set; }
    [ForeignKey("UsuAlt")]
    public virtual Usuario UsuarioAlt { get; set; }
    [ForeignKey("UsuUltAlt")]
    public virtual Usuario UsuarioUltAlt { get; set; }
    [ForeignKey("EmpresaID")]
    public virtual Empresa Empresa { get; set; }    
    [ForeignKey("ProdutoID")]
    public virtual Produto Produto { get; set; }
}

意見

@model ERP.Models.Produto

@{
    ViewBag.Title = Html.MontaTitulo("Detalhe produto - " + @Model.ProdutoID.ToString());    
}

<script type="text/javascript">
    var oTableSetor;

    $(document).ready(function () {
        GridProdutoLote();     
    });

    function GridProdutoLote() {
        if (oTableSetor===undefined)
        {
            oTableGrid = $('#lista_lote').dataTable({            
                "bServerSide": true,            
                "sAjaxSource": '@Html.Raw(@Url.Action("ListaGenerica", "Home", new { aController = "ProdutoLote", filtroID = @Model.ProdutoID  } ))', 
                "bProcessing": true,
                "sPaginationType": "full_numbers",                   
                "aoColumns": [
                            { "mDataProp": "ProdutoLoteID", "sTitle": "ID"},
                            { "mDataProp": "Lote", "sTitle": "Lote" },
                            { "mDataProp": "Identificacao", "sTitle": "Identificacao"},
                            { "mDataProp": "DtFabricacao", "sTitle": "DtFabricacao"},
                            { "mDataProp": "DtValidade", "sTitle": "DtValidade"},
                            { "mDataProp": "QtdeAtual", "sTitle": "QtdeAtual"},
                            { "mDataProp": "QtdeEmUtilizacao", "sTitle": "QtdeEmUtilizacao"},
                            { "mData": null, "bSortable": false, "fnRender": function (o) {return '<a class="icone_16x16_detalhe" href=/Setor/Detalhar/' + o.aData["ProdutoLoteID"] + '>D</a>';}}                          
                ],
            });

            $('#lista_lote_filter input').unbind();            
            $("#lista_lote").show();
            $("#grid_lote").show();
            $('#lista_lote_filter input').bind('keyup', function(e) {
                if(e.keyCode == 13) {
                oTableGrid.fnFilter(this.value);   
            }});  
        }
    };
</script> 
@using (Html.BeginForm())
{
    @Html.ValidationSummary(true);    
    @Html.HiddenFor(m => m.ProdutoID)             
    @Html.HiddenFor(m => m.ProdutoBase.Identificacao)
    @Html.HiddenFor(m => m.ProdutoBase.Descricao)    

    <div class="linha left">  

        @Html.LabelFor(m => m.Identificacao) @Html.ValidationMessageFor(m => m.Identificacao)<br />    
        @Html.TextBoxFor(m => m.Identificacao, new { style = "width:250px;" })<br />

        @Html.LabelFor(m => m.Descricao) @Html.ValidationMessageFor(m => m.Descricao)<br />
        @Html.TextBoxFor(m => m.Descricao, new { style = "width:250px;" })<br />   

        @Html.LabelFor(m => m.Detalhe) @Html.ValidationMessageFor(m => m.Detalhe)<br />  
        @Html.TextBoxFor(m => m.Detalhe, new { style = "width:250px;" })<br />  


        @Html.LabelFor(m => m.ProdutoBase.UnidadeMedidaID) * @Html.ValidationMessageFor(m => m.ProdutoBase.UnidadeMedidaID)<br />   
        @Html.DropDownList("ProdutoBase.UnidadeMedidaID", (SelectList)ViewBag.ListaUnidadeMedida, String.Empty, new { style = "width:250px;" }) @Html.ValidationMessageFor(m => m.ProdutoBase.UnidadeMedidaID)<br />

        @Html.LabelFor(m => m.ProdutoBase.Fracao) * @Html.ValidationMessageFor(m => m.ProdutoBase.Fracao)<br />  
        @Html.TextBoxFor(m => m.ProdutoBase.Fracao, new { style = "width:250px;" })<br />  

        @Html.LabelFor(m => m.ProdutoBase.QtdeFracao) * @Html.ValidationMessageFor(m => m.ProdutoBase.QtdeFracao)<br />  
        @Html.TextBoxFor(m => m.ProdutoBase.QtdeFracao, new { style = "width:250px;" })<br />  

        @Html.LabelFor(m => m.ProdutoBase.UnidadeMedidaIDFracao) * @Html.ValidationMessageFor(m => m.ProdutoBase.UnidadeMedidaIDFracao)<br />   
        @Html.DropDownList("ProdutoBase.UnidadeMedidaIDFracao", (SelectList)ViewBag.ListaUnidadeMedidaFracao, String.Empty, new { style = "width:250px;" }) @Html.ValidationMessageFor(m => m.ProdutoBase.UnidadeMedidaIDFracao)<br /> 

        @Html.LabelFor(m => m.QtdeMinima) @Html.ValidationMessageFor(m => m.QtdeMinima)<br />  
        @Html.TextBoxFor(m => m.QtdeMinima, new { style = "width:250px;" })<br />  

        @Html.LabelFor(m => m.QtdeIdeal) @Html.ValidationMessageFor(m => m.QtdeIdeal)<br />  
        @Html.TextBoxFor(m => m.QtdeIdeal, new { style = "width:250px;" })<br />  

        @Html.LabelFor(m => m.QtdeMaxima) @Html.ValidationMessageFor(m => m.QtdeMaxima)<br />  
        @Html.TextBoxFor(m => m.QtdeMaxima, new { style = "width:250px;" })<br />

        @Html.LabelFor(m => m.QtdeAtual) @Html.ValidationMessageFor(m => m.QtdeAtual)<br />  
        @Html.TextBoxFor(m => m.QtdeAtual, new { style = "width:250px;", @readonly = "readonly" })<br /><br />  

        @Html.CheckBoxFor(m => m.ProdutoBase.TemLoteBool, new { @class = "input normal" }) @Html.LabelFor(m => m.ProdutoBase.TemLoteBool) @Html.ValidationMessageFor(m => m.ProdutoBase.TemLoteBool)<br />  
        @Html.CheckBoxFor(m => m.ProdutoBase.FracionadoBool, new { @class = "input normal" }) @Html.LabelFor(m => m.ProdutoBase.FracionadoBool) @Html.ValidationMessageFor(m => m.ProdutoBase.FracionadoBool)<br />

        <br />
        Campos marcados com *, são do produto base e somente podem ser visualizados e não alterados
        <br /><br />
        @Html.MontaBotoesTelaDetalhar()
        <br /><br />

    </div>    
}

<div class="linha left" id="grid_lote">    
    <div class="linha left separadora" >Dados de lote:</div>
    <br />        
    <br />
    <table id="lista_lote" class="display">
        <thead>
            <tr>
                <th></th>
                <th></th>
                <th></th>
                <th></th>                
                <th></th>
                <th></th>
                <th></th>
                <th></th>
            </tr>
        </thead>
        <tbody> 
        </tbody>
    </table>
</div>
<br /><br />
<br /><br />
4

1 に答える 1

0

Error 2 Cannot convert lambda expression to type 'string' because it is not a delegate type. これは.OrderBy(orderna + " " + ordenaTipo);Gridメソッドでこれを行ったために発生しています。代わりに、日付もフォーマットする以下のコードを試してください

編集

var queryResult = dados.AsQueryable().Where(where, filtro)
                  .OrderBy(dado => dado.ColumnName1)
                  .ThenBy(dado => dado.ColumnName2).ToList();
resultado.Dados =
    (from a in queryResult 
     select new
     {
         a.ProdutoLoteID,
         a.Lote,
         a.Identificacao,                     
         a.DtFabricacao.HasValue() ? a.DtFabricacao.Value.ToString("dd-MM-yyyy") : a.DtFabricacao,                     
         a.DtValidade,
         a.QtdeAtual,
         a.QtdeEmUtilizacao
     });
于 2013-07-29T20:15:23.427 に答える