当前位置:  开发笔记 > 编程语言 > 正文

格式化DataBinder.Eval数据

如何解决《格式化DataBinder.Eval数据》经验,为你挑选了4个好方法。

如何格式化来自ASPX页面中的DataBinder.Eval语句的数据?

例如,我想在主页中以特定格式显示新闻项的发布日期.我正在使用ASP.NET 2.0 Repeater控件来显示新闻项列表.

这个代码是这样的:



    

有没有办法我可以用DataBinder.Eval值作为参数调用自定义方法(如下所示)?


如果是,那么我在哪里编写GetDateInHomepageFormat方法?我尝试了代码隐藏页面,但是出现了运行时错误?如果这不可能,有没有办法进行内联格式化?



1> DOK..:

DataBinder.Eval有一个可选的重载来提供格式:

<%# DataBinder.Eval(Container.DataItem, "expression"[, "format"]) %>

format参数是一个String值,使用值占位符替换语法(称为复合格式),如下所示:



回复此处,因为Google今天的搜索结果仍然很高.请记住,使用Eval时会有性能损失(因为后期绑定).要格式化输出,我更喜欢将显式强制转换传递给函数,例如.<%#Format(((DeliveryDataType)Container.DataItem).DELeliDate,"dd.MM.yy")%>
很棒的答案...也值得为http://www.csharp-examples.net/string-format-datetime/添加DateTime的所有C#字符串格式的链接

2> Nahom Tijnam..:

在Internet上进行一些搜索之后,我发现实际上很可能调用一个传递DataBinder.Eval值的自定义方法.

自定义方法可以写在代码隐藏文件中,但必须声明为publicprotected.在我上面的问题中,我曾提到过我尝试在后面的代码中编写自定义方法但是遇到了运行时错误.原因是我已经宣布该方法是私有的.

因此,总结以下是使用DataBinder.Eval值获取所需输出的好方法:

Default.aspx的


default.aspx.cs代码:

public partial class _Default : System.Web.UI.Page
{

    protected string GetDateInHomepageFormat(DateTime d)
    {

        string retValue = "";

        // Do all processing required and return value

        return retValue;
    }
}

希望这对其他人也有帮助.



3> Diego C...:

为什么不使用更简单的语法?


这是模板控件"Eval",它接受表达式和字符串格式:

protected internal string Eval(
string expression,
string format

)

http://msdn.microsoft.com/en-us/library/3d2sz789.aspx



4> dexter..:

你可以像你说的那样将函数用于转发器,但请注意DataBinder.Eval返回一个对象,你必须将它转换为DateTime.

您还可以内联格式化您的字段:

<%# ((DateTime)DataBinder.Eval(Container.DataItem,"publishedDate")).ToString("yyyy-MMM-dd") %>

如果您使用的是ASP.NET 2.0或更高版本,可以按如下方式编写:

<%# ((DateTime)Eval("publishedDate")).ToString("yyyy-MMM-dd") %>

另一种选择是在OnItemDataBound事件中将值绑定到label.

推荐阅读
yzh148448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有