2012-04-10 19 views
1

未處理的,當我嘗試這個InvalidCastException的是由用戶代碼

protected void Grid_ViewSorting(Object sender, GridViewSortEventArgs e) 
{ 
     DataGrid myGrid = (DataGrid) sender; 
     DataTable datatable =(DataTable) myGrid.DataSource;   
     DataView dataView = datatable.DefaultView; 

     if(e.SortDirection.ToString() == "ASC") 
     { 
        dataView.Sort = e.SortExpression + "DESC"; 
     } else 
     { 
      dataView.Sort = e.SortExpression + "ASC"; 
     } 
} 

我得到了錯誤味精InvalidCastException的了未處理通過USERCODE 無法投類型的對象'System.Web.UI.WebControls.GridView爲鍵入' System.Web.UI.Web.Contro.DataGrid」。

+1

您試圖將GridView轉換爲DataGrid:O?也許改變你的鑄造 – 2012-04-10 17:23:59

+1

閱讀錯誤信息,看看它說的行,嘗試一下,然後回來。 – 2012-04-10 17:24:04

+1

您也可以在嘗試轉換之前測試特定類型'if(sender is DataGrid)'。 – 2012-04-10 17:26:54

回答

6

的到底是什麼問題異常說

DataGrid myGrid = (DataGrid) sender; 

在這種情況下,senderGridView類型,但你試圖將其轉換爲DataGrid。這是非法的,因此CLR引發了一個例外。您需要將sender作爲GridView類型並對其進行相應處理。

GridView myGrid = (GridView) sender; 
相關問題