在使用DataView之前必须先设置DataTable。

3

当我尝试手动排序表格时,出现以下错误提示: 在使用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";
        }

    }

我错在哪里?

3个回答

3

1

你的数据表可能也需要成为数据集的一部分。

类似于

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;

这只是来自奇怪的过去经验


0
这种情况发生在我错误地给一个类打上了 [DataObject] 修饰符的时候。这意味着整个类必须作为数据源进行绑定,而实际上并非如此。移除该标记即可解决错误。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接