【发布时间】:2012-07-28 07:06:04
【问题描述】:
在我的 MVC 应用程序的 Telerik 网格中显示 DateTime 时,我尝试使用 C# 应用一些逻辑,但在使其正常工作时遇到了一些麻烦。我的第一个问题是我不完全了解 ClientTemplate 调用的工作原理。我也找不到解释它是如何工作的文档。所以,解释一下它是如何工作的会很有帮助,然后可能就是我的例子出了什么问题:
columns.Bound(p => p.SetupDate).ClientTemplate("<#= SetupDate == DateTime.Min || SetupDate == null ? string.empty : SetupDate #>")
更新:
我同意了丹尼尔的建议。我只是从 ClientTemplate() 调用这个函数。这是最终代码:
// Setup a minDate to mimic C#'s Date.MinDate constant.
var minDate = new Date();
minDate.setFullYear(1, 0, 1);
minDate.setHours(0, 0, 0, 0);
function checkDateWithFormat(d, f)
{
if (d.getTime() == minDate.getTime())
{
return "";
}
else
{
return d.toString(f);
}
}
【问题讨论】:
-
我认为您不能在客户端模板中添加这样的逻辑。您需要将逻辑放入模型中。
-
据我了解,如果我将该逻辑放入模型中(即,在某些情况下返回一个空字符串,在这种情况下,我将使用字符串类型而不是 DateTime在网格中输入),然后排序将无法正常工作。这确实是我要在这里解决的全部问题。欢迎提出任何建议。
-
如果排序是真正的问题,我可能会在模型中创建另一个属性来排序,也许是一个 int,并使用 SetUpDate 来填充它。然后,您可以将日期格式化为所需显示的字符串,并且不会失去保持列表正确排序的能力
标签: c# asp.net-mvc telerik telerik-grid