如何在GridView中更改BoundField的方向

时间:2009-12-13 10:13:28

标签: asp.net gridview boundfield

很抱歉,如果我的问题看起来很简单。

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

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

我浏览了所有的BoundField属性以改变方向,但我什么也没找到。

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

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

2 个答案:

答案 0 :(得分: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]);
}

答案 1 :(得分:0)

首先确保您已设置HtmlEncode="False"

尝试将此添加到BoundField标记 -

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

这是一篇很有帮助的文章 - How To Set a Date Format In GridView