2011-02-25 46 views
0

我從以下事件訪問一個DetailsView如何得到一個值超出一個DetailsView DataItem屬性

public void dvDetails_DataBound(Object sender, EventArgs e) 

我鑄造發送到我的DetailsView像這樣

DetailsView dv = (DetailsView)sender; 

現在,當我看在「DV」我可以看到DataItem屬性有我想在它的字段名下的數據,但我不知道如何編寫代碼訪問值?

字段名稱在DataItem屬性爲「_DTMON_F」顯示,我想說

Datetime myDate=dv.DataItem["_DTMON_F"] 

但是C#犯規像語法,有人可以幫我嗎?

+0

數據源是一個DBML文件 – 2011-02-25 16:22:26

回答

1

這取決於您的DetailsView的數據源。在SqlDataSource的情況下DataItem將是一個DataRowView。你必須投它,然後你可以訪問它的專欄。例如:

Datetime myDate=(DateTime)((DataRowView)dv.DataItem)["_DTMON_F"]; 
+0

它給了我一個無效的轉換異常試圖轉換爲DataRowView的 – 2011-02-25 16:23:08

+0

由於我是從這些信息,我必須將它轉換爲dbml的對象。 – 2011-02-25 16:26:08

0

鑄造問題或許?

DateTime myDate=(DateTime)dv.DataItem["_DTMON_F"];

如果數據源是一個數據庫,您可能需要使用轉換。

0
DataRowView drv = dv.DataItem as DataRowView; 
DateTime myDate = (DateTime)drv["_DTMON_F"]; 
相關問題