2011-10-10 42 views
0

我想格式化与jqgrid一起使用的日期。如何获取带有模板t4的属性类型以格式化jqgrid中的日期时间?

我正在使用T4的MVC脚手架。

中有这样的

jQuery("#ajaxGrid").jqGrid({ 
     url: '@Url.Action("GridData")', 
     datatype: "json", 
     jsonReader: { repeatitems: false, id: "<#= Model.PrimaryKeyName #>" }, 
     colNames: [<#= string.Join(", ", properties.Select(prop => "'" + prop.Name + "'")) #>], 
     colModel: [ 
      <#= string.Join(", \r\n   ", properties.Select(prop => 
       string.Format("{{ name: '{0}', editable: true, sortable: true, hidden: {1}, align: {2} {3}}}", prop.Name, prop.Name == Model.PrimaryKeyName ? "true" : "false", "left", prop.Type.ToString() == "DateTime" ? "sorttype: 'date', datefmt: 'm/d/Y h:i AmPm'": "") 
      )) #> 
     ], 
     rowNum: 5, 
     pager: '#ajaxGridPager', 
     width: '850', 
     height: '15em' 
    }); 

prop.Type.ToString()== “日期时间” 的T4模板的一部分? “sorttype:'date',datefmt:'m/d/Y h:我AmPm'”:“”不起作用。

我想格式化日期如果字段是DateTime,就像我看到的网页/ Date(1315968717587)/并且我想更改T4模板以自动为将来实体生成它。

我该如何做到这一点? 在此先感谢!吉列尔莫。

编辑

我读过,我可以参考Microsoft.VisualBasic程序和使用

Microsoft.VisualBasic.Information.TypeName(prop) 

但它返回CodeProperty2。我无法弄清楚如何获得真正的类型。 我试图与

Microsoft.VisualBasic.Information.TypeName(prop).Type 

,然后它说: 错误CS1061:编译变换:“字符串”不包含定义为“类型”和没有扩展方法“类型”接受第一AR gument类型的'string'可以找到(你是否缺少使用指令或程序集引用?)

所以它知道它是字符串,但ToString()也返回CodeProperty2。

任何想法? 在此先感谢!吉列尔莫。

回答

0

由于我没有任何其他的答案,我将其固定在看属性的名称。如果它包含字符串“Date”,我将它格式化为Date,但我想避免这种情况,因为我不想绑定属性jqgrid的名称,我的意思是,应该能够命名属性无论什么人都想要,它应该继续工作,并显示它作为日期。

0

什么:

prop.Type.GetType() == typeof (System.DateTime) 
    ? "sorttype: 'date', datefmt: 'm/d/Y h:i AmPm'" 
    : "" 
+0

不,prop.Type.GetType()输出System .__ ComObject – polonskyg

+0

嗯,你知道这个COM对象实现了什么接口?也许有办法查询它代表什么类型? – FuleSnabel

+0

不知道,无论如何,我可以找到它? – polonskyg

相关问题