Asp.net 如何在GridView中更改边界字段的方向

Asp.net 如何在GridView中更改边界字段的方向,asp.net,gridview,boundfield,Asp.net,Gridview,Boundfield,对不起,我的问题似乎很简单 现在在GridView的边界字段中,一些数据显示为“12/11/1381”,我想显示为“1381/11/12”(相反方向) 我知道我可以通过TemplateField中的rtl和ltr改变方向。但由于某些原因,我无法将boundfield转换为templatefield 为了改变方向,我查看了所有的BoundField属性,但什么也没找到 我认为这应该在GridView的RowDataBound事件中完成,但我不知道怎么做 你觉得这个案子怎么样? 提前谢谢 首先确保设

对不起,我的问题似乎很简单

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

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

为了改变方向,我查看了所有的BoundField属性,但什么也没找到

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

你觉得这个案子怎么样?

提前谢谢

首先确保设置了
HtmlEncode=“False”

尝试将其添加到BoundField标记-

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

这里有一篇很好的文章可以帮助您-

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

方法1
将字符串数据绑定为
日期
对象,而不是
字符串
。由于我现在不知道原始日期的确切日期格式,dd/MM/yyyy或MM/dd/yyyy,您必须自己计算出来

如果可以,只需将其添加到“BoundField”元素:

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

方法2
操纵ROwDataBound oevent中的文本。我在这里做了一个粗糙的,可以擦亮的。您可能应该将它们作为
Date
对象进行操作

在ASPX中:

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

“1381年12月11日”只是一个日期吗?是的。这是日期,但在字符串中。谢谢。这在我有约会时间的情况下绝对有效。但也有其他情况下,我的boundfield是字符串数据类型,而不是datetime。除了转换为模板字段外,还有其他解决方案吗?@Mostafa:我不太明白你的问题
RowDataBound
事件允许您执行任何字符串操作,不必是
Date
类型。
<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]);
}