我需要将时间值绑定到我的网格视图。例如,如果时间是 13:00,我需要在网格中显示为 13-00。但它显示为 01-00。我该如何解决这个问题?
问问题
1185 次
3 回答
0
您需要将值转换为 24 小时格式(例如,通过为您的应用程序选择不同的文化)或简单地创建一些转换器类来为您转换它。有多种资源可供学习。
像这样的东西应该工作:
DateTime localTime = DateTime.Now;
// 24 hour format -- use 'H' or 'HH'
string timeString24Hour = localTime.ToString("HH:mm", CultureInfo.CurrentCulture);
取自 SO Convert AM/PM time to 24 hours format 中的另一个答案?
如果您的文化使用 12 小时格式,请使用不同的文化信息进行支持 24 小时格式的解析。
当然,您可能希望将其包装在 getter 属性中,以便它可用于绑定
public string DateIn24HourFormat
{
get
{
return MyConvertFunction(this.Time);
}
}
你明白了。
于 2013-04-15T08:11:25.650 回答
0
您可以使用GridView.RowDataBound事件来实现它。根据需要格式化时间字符串并分配给网格视图单元格。
您可以使用日期格式将日期时间转换为 24 小时格式。
void CustomersGridView_RowDataBound(Object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Cells[1].Text = DateTime.Now.ToString("MM/dd/yyyy HH:mm");
}
}
于 2013-04-15T08:11:37.550 回答
0
DataFormatString
在 中的属性中给出您的时间格式BoundColumn
。应用格式为
{0:HH-mm}
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.boundfield.dataformatstring.aspx
于 2013-04-15T08:20:43.090 回答