【发布时间】:2014-10-08 23:59:18
【问题描述】:
有什么方法可以将 DataView 转换为 DataSource 吗?
我正在尝试在单击时对我的 gridview 列进行排序。代码如下:
internal static string sort(object _sender, GridViewSortEventArgs _e, string _viewStateSortExpression, string _viewStateSortDirection)
{
string expression = _e.SortExpression;
string direction = getSortDirection(expression, _viewStateSortExpression, _viewStateSortDirection); //ascending by default
GridView gvSrc = (GridView)_sender;
DataView dv = new DataView();
gvSrc.DataSource = dv;
gvSrc.DataBind();
dv = (DataView)((SqlDataSource)gvSrc.DataSource).Select(DataSourceSelectArguments.Empty);
dv.Sort = expression + " " + direction;
return direction;
}
单击列进行排序时出现此错误:
Unable to cast object of type 'System.Data.DataView' to type 'System.Web.UI.WebControls.SqlDataSource'.
【问题讨论】:
-
您是否尝试过直接投射而不是先投射到
SqlDataSource,然后再投射到DataView? -
@shree.pat18 我收到此错误:必须在使用 DataView 之前设置 DataTable。
标签: c# asp.net gridview datasource