2016-04-11 25 views
1

このコードを使用して(Eval("RegDtTime")-DateTime.Nowと入力してgridviewDateTime.nowの登録日時しかし、このエラー:operator '-' is not defined for types 'Object' and 'Date'を取得します。代わりに私は何を使うべきですか? Eval ObjectAsp.net Gridviewエラー: 'オブジェクト'と '日付'タイプのオペレータ ' - 'が定義されていません

<%# System.Convert.ToDateTime(Eval("RegDtTime"))%> 

以下

+0

チェックhttp://www.vbforums.com/showthread.php?356101-RESOLVED-Operator-is-not-defined-for-types-Date-and-Integer – MusicLovingIndianGirl

+0

何が必要ですか?日数の違いは?月?期間? – Bikee

+0

これは今です。しかし、私は分を得る方法を知らない。 '(Convert.ToDateTime(Eval(" LastDateTime ")) - (DateTime.Now))' – user1605859

答えて

2

使用はだからあなたのテンプレートは

<asp:TemplateField ItemStyle-Width = "100px" HeaderText = "DATE" > 
    <ItemTemplate > 
     <%# (System.Convert.ToDateTime(Eval("Date")) - (DateTime.Now)) %> 
    </ItemTemplate>  
</asp:TemplateField> 
0

代わりののaspxファイル内のロジックをコーディングするには、あなたが背後にあるコードでメソッドを定義し、GridViewコントロールからそれを呼び出すことができるだろうということ。

これはaspxの私のGridViewです。

<asp:GridView ID="GridView1" AutoGenerateColumns="false" runat="server"> 
    <Columns> 
     <asp:TemplateField HeaderText="Date"> 
      <ItemTemplate> 
       <asp:Label ID="Label1" runat="server" 
        Text='<%# GetCalculatedDateTime(Convert.ToDateTime(Eval("RegDtTime"))) %>'></asp:Label> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
</asp:GridView> 

これはエンティティまたはモデルです。

public class MyClass 
{ 
    public DateTime RegDtTime { get; set; } 
} 

これはASPXのコードビハインドです。

protected void Page_Load(object sender, EventArgs e) 
{ 

     if (!Page.IsPostBack) 
     { 
      var lst = new List<MyClass>(); 
      lst.Add(new MyClass { RegDtTime = DateTime.Now.AddDays(-5) }); 
      lst.Add(new MyClass { RegDtTime = DateTime.Now.AddDays(6) }); 
      lst.Add(new MyClass { RegDtTime = DateTime.Now.AddDays(5) }); 
      lst.Add(new MyClass { RegDtTime = DateTime.Now.AddDays(-9) }); 
      lst.Add(new MyClass { RegDtTime = DateTime.Now.AddDays(-7) }); 

      GridView1.DataSource = lst; 
      GridView1.DataBind(); 
     } 
} 

public static string GetCalculatedDateTime(DateTime dt) 
{ 
    var result = dt - DateTime.Now; 
    return result.ToString(); 
} 

GetCalculatedDateTimeメソッドで必要なロジックを記述することができます。

+0

これは私の問題を解決しました: 'convert.toint32((Convert.ToDateTime(Eval(" LastDateTime ")) - (DateTime.Now))。TotalMinutes)' – user1605859

関連する問題