当我尝试手动排序我的表时,我收到此错误: 必须在使用DataView之前设置DataTable。 代码是:
protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
{
DataTable sourceTable = GridView1.DataSource as DataTable;
DataView view = new DataView(sourceTable);
string[] sortData = Session["sortExpression"]!= null ? Session["sortExpression"].ToString().Trim().Split(' ') : null;
if (sortData != null && e.SortExpression == sortData[0])
{
if (sortData[1] == "ASC")
{
view.Sort = e.SortExpression + " " + "DESC";
Session["sortExpression"] = e.SortExpression + " " + "DESC";
}
else
{
view.Sort = e.SortExpression + " " + "ASC";
Session["sortExpression"] = e.SortExpression + " " + "ASC";
}
}
else
{
view.Sort = e.SortExpression + " " + "ASC";
Session["sortExpression"] = e.SortExpression + " " + "ASC";
}
}
哪里错了?
答案 0 :(得分:3)
最有可能的GridView1.DataSource为null。 您可以在此处找到有关Gridview排序的教程:http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.sorting.aspx
答案 1 :(得分:0)
您的数据表也可能需要成为数据集的一部分。
与
相似DataSet ds = new DataSet()
DataTable sourceTable = GridView1.DataSource as DataTable;
ds.Tables.Add(sourceTable)
DataView view = new DataView(sourceTable);
string[] sortData = Session["sortExpression"]!= null ? Session["sortExpression"].ToString().Trim().Split(' ') : null;
这只是来自奇怪的过去经历
答案 2 :(得分:0)
当我用[DataObject]修饰符错误地标记了一个类时,这发生在我身上。这意味着整个类必须作为数据源是“可绑定的”,而事实并非如此。删除标签可消除错误。