2009-12-13 33 views
0

對不起,如果我的問題看起來很簡單。如何在GridView中更改BoundField的方向

現在在我的GridView的BoundField中,一些數據顯示爲「12/11/1381」,我想顯示爲「1381/11/12」(相反的方向)。

我知道我可以通過TemplateField中的rtl和ltr來改變方向。但由於某種原因,我無法將我的界限轉換爲模板域。

我查看了所有的BoundField屬性以改變方向,但是我什麼也沒找到。

我認爲應該在GridView的RowDataBound事件中完成,但是我不知道如何!

您對這種情況有什麼看法?
在此先感謝。

+0

是 「1381年12月11日」 的日期正好任何文字? – 2009-12-13 10:17:45

+0

是的。這是日期,但在字符串。 – Mostafa 2009-12-13 10:31:08

回答

1

好,因爲它是一個作爲字符串輸入的日期,至少有兩種方法可以做到這一點。

方法1
數據綁定的字符串作爲Date對象,而不是String。由於我現在沒有使用原始日期的確切日期格式,所以您必須自己弄明白日期格式,日/月/年或MM/dd/yyyy。

如果你能做到這一點,只需添加這爲 「綁定列」 元素:

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]); 
} 
+0

謝謝。這絕對適用於我有日期時間的情況。但還有其他情況下,我的綁定字段是字符串數據類型而不是日期時間。除了轉換爲模板字段的任何解決方案? – Mostafa 2009-12-13 11:22:13

+0

@Mostafa:我不太明白你的問題。 'RowDataBound'事件允許你執行任何字符串操作,不一定是'Date'類型。 – 2009-12-13 11:36:22

+0

你說得對。謝謝 – Mostafa 2009-12-13 15:12:46

相關問題