很抱歉,如果我的问题看起来很简单。
现在我的GridView的BoundField中有一些数据显示像“12/11/1381”,我想显示为“1381/11/12”(相反的方向)。
我知道我可以通过TemplateField中的rtl和ltr改变方向。但由于某种原因,我无法将我的boundfield转换为templatefield。
我浏览了所有的BoundField属性以改变方向,但我什么也没找到。
我认为应该在GridView的RowDataBound事件中完成,但我不知道如何!?
在这种情况下你怎么看? 提前致谢。
答案 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