0

对不起,如果我的问题看起来很简单。

现在在我的 GridView 的 BoundField 中,一些数据显示为“12/11/1381”,我想显示为“1381/11/12”(相反方向)。

我知道我可以通过 TemplateField 中的 rtl 和 ltr 改变方向。但由于某种原因,我无法将绑定字段转换为模板字段。

我查看了所有 BoundField 属性以更改方向,但我一无所获。

我认为应该在 GridView 的 RowDataBound 事件中完成,但我不知道怎么做!?

在这种情况下你怎么看?
提前致谢。

4

2 回答 2

1

好的,因为它是作为字符串输入的日期,所以至少有两种方法可以做到这一点。

方法 1
将字符串数据绑定为Date对象而不是String. 因为我现在不知道原始日期的确切日期格式,dd/MM/yyyy 或 MM/dd/yyyy,你必须自己弄清楚。

如果你能做到这一点,只需将其添加到“BoundField”元素:

DataFormatString="{0:yyyy/MM/dd}" 

或者

DataFormatString="{0:yyyy/dd/MM}" 

方法 2
操作 ROwDataBound oevent 中的文本。我在这里做了一个可以抛光的粗略的。您可能应该将它们作为Date对象来操作。

在 ASPX 中:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" 
 onrowdatabound="GridView1_RowDataBound">

代码隐藏:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType != DataControlRowType.DataRow)
        return;
    // assuming the date is at cell index 1
    string[] arr = e.Row.Cells[1].Text.ToString().Split('/');
    e.Row.Cells[1].Text = string.Format("{0}/{1}/{2}", arr[2], arr[1], arr[0]);
}
于 2009-12-13T11:01:47.177 回答
0

首先确保你已经设置HtmlEncode="False"

尝试将此添加到 BoundField 标记 -

DataFormatString="{0:yyyy/MM/dd}"

这是一篇可以帮助您的好文章 -如何在 GridView 中设置日期格式

于 2009-12-13T11:01:42.127 回答