2012-04-10 35 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; 
相关问题