当我尝试这个

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”的对象转换为“ System.Web.UI.Web.Contro.DataGrid”。

最佳答案

问题恰好是异常所说明的

DataGrid myGrid = (DataGrid) sender;


在这种情况下,sender的类型为GridView,但是您尝试将其强制转换为DataGrid。这是非法的,因此CLR引发异常。您需要考虑sender类型为GridView并进行相应处理。

GridView myGrid = (GridView) sender;

关于c# - 用户代码未处理InvalidCastException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10093419/

10-13 00:26
查看更多