用户代码未处理InvalidCastException

时间:2012-04-10 17:22:49

标签: c#

当我尝试这个

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";
       }
 }

我收到错误msg invalidCastException未通过userCode处理 无法将类型为“System.Web.UI.WebControls.GridView”的Object OF类型转换为“System.Web.UI.Web.Contro.DataGrid”。

1 个答案:

答案 0 :(得分:6)

问题正是异常所说的

DataGrid myGrid = (DataGrid) sender;

在这种情况下,sender的类型为GridView,但您尝试将其转换为DataGrid。这是非法的,因此CLR抛出异常。您需要将sender属于GridView类型并对其进行相应处理。

GridView myGrid = (GridView) sender;