用户代码未处理InvalidCastException

1 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";
       }
 }
Run Code Online (Sandbox Code Playgroud)

我收到错误msg invalidCastException未处理userCode无法将类型'System.Web.UI.WebControls.GridView'的对象强制转换为类型'System.Web.UI.Web.Contro.DataGrid'.

Jar*_*Par 6

问题正是异常所说的

DataGrid myGrid = (DataGrid) sender;
Run Code Online (Sandbox Code Playgroud)

sender这种情况下是一个类型的GridView,但你试图将其转换为DataGrid.这是非法的,因此CLR抛出异常.您需要考虑sender该类型GridView并相应地处理它.

GridView myGrid = (GridView) sender;
Run Code Online (Sandbox Code Playgroud)