2013-07-29 24 views
0

我需要formartar在「dd-MM-yyyy」中選擇日期,但我沒有收到。已經以各種方式進行測試,但沒有任何工作。字段格式爲:DtFabricacao。我使用的DataTable,並要格式化Linq中的日期prórpioLinq在SELECT中選擇日期時間爲dd-MM-yyyy

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 /> 
+0

這是asp.net MVC?如果是,請發佈視圖和模型的代碼。如果不是,你在哪裏嘗試更改日期格式?發佈該代碼。 – ataravati

+0

您是否只希望在網格控件中顯示此信息,或者您是否希望進行編輯?我假設你可以把字符串格式=「dd-MM-yyyy」;在你選擇新的linq語句和下面的代碼之前:DtFabricacao = a.DtFabricacao.toString(format), – KreepN

+0

KreepN,我可以把字符串格式化。你的代碼,它的信息錯誤: 錯誤無法轉換lambda表達式到類型「串」,因爲它不是一個委託類型\t 錯誤無重載方法「的ToString」需要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 
    }); 
+2

我想你想'ThenBy'而不是第二個'OrderBy',否則它會重新排列整個數據集。 –

+0

@D赤柱。你是對的,我的不好。我正在更新我的答案,謝謝。 – jonni