0

我已经动态创建了 SPGridView(在 sharepoint 的代码隐藏中),一切工作正常分页、排序等......但我想在不使用 ObjectDataSource 的情况下进行过滤(我通过将对象数据源的 ID 分配给 ObjectDataSource 来完成它

Grid.DataSourceID = objectDatasourceID;

并且 filterig 有效,但是当我编辑该行时,在更新它时它不起作用)所以我删除了 ObjectDataSource 并从 DB 获取表的数据并分配给 Grid.DataSource = DataTable; 和 Grid.DataBind(); 它工作正常但是当我编写过滤代码时

    SPgv.AllowFiltering = true;
    SPgv.FilterDataFields = "CODE_NAME";
    SPgv.FilteredDataSourcePropertyName = "FilterExpression";
    SPgv.FilteredDataSourcePropertyFormat = "{1} = '{0}'";

(SPgv 是 SPGridView,CODE_NAME 是列名)

当我运行此代码时,菜单出现在列名上,并且排序 asc 和 desc 也可以工作,但是当我单击菜单并且 CODE_NAME 列中的值没有出现时,它给了我一个 javascript 错误,它说正在加载.. . 但什么也没有出现

任何关于没有 ObjectDataSource 的过滤的帮助将不胜感激,我不需要任何文本框,用于过滤的下拉列表我想要相同的菜单(出现在 SPGridView 中)用于过滤但没有 ObjectDataSource。

4

1 回答 1

0

如您所知,SPGridView 的过滤最适合使用 ObjectDataSource。我建议添加一个下拉控件并将所选值传递给您的 CAML 查询以进行过滤。

于 2011-03-17T16:23:53.673 回答