2008-11-07 44 views
0

我有一個對象返回從ObjectDataSource獲取並綁定到Gridview的IList。所有工作正常,如果我只是用標準的約束力,但我想定製我的結合上一個LinkBut​​ton設置屬性如下:無法在自定義綁定場景中將DataItem轉換爲DataRowView

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
     { 
      if (e.Row.RowType == DataControlRowType.DataRow) 
      { 
       // extract the link button 
       LinkButton lnkViewMap = (LinkButton)e.Row.FindControl("lnkViewMap"); 

       // grab the datarowview 
       System.Data.DataRowView row = (System.Data.DataRowView)e.Row.DataItem; 

       // set the onclientclick to fire our showMap javascript function, 
       // passing through the lat/longs 
       lnkViewMap.OnClientClick = string.Format("showMap({0}, {1}); return false;", row["Lat"], row["Long"]); 
      } 
     } 

我在哪裏鑄造e.Row.DataItem到時我的錯誤DataRowView的。上面的代碼來自Matt Berseth關於Virtual Earth的真棒博客......這正是我想要在這裏實現的。有任何想法嗎?

回答

2

在調試器中設置斷點並查看e.Row.DataItem的實際類型。

如果您在網格上設置的DataSourceDataViewDataTable,它將只是DataRowView。否則它將是集合的元素類型。

+0

這樣做...我將DataItem轉換爲我的元素類型,然後使用正常表示法訪問它的屬性,並且它工作...謝謝! – Webjedi 2008-11-07 14:35:27

相關問題