在Sharepoint Web部件中显示大量数据并进行排序和筛选

时间:2011-01-25 09:43:38

标签: sharepoint grid web-parts

我想创建一个Sharepoint Web部件,以显示来自ODBC源的大量数据(在第一个实例中是SQL Server 2008数据库),能够对数据进行排序和过滤,可能会逐渐取材。

您对使用的技术有何建议?

  • 报告查看器Web部件:我认为它有点酷,但不会启用渐进式数据提取
  • 自定义Web部件,嵌入了自定义GridView控件
  • 嵌入了供应商网格控件的自定义Web部件(Telerik,DevExpress等)
  • 供应商Sharepoint网格控制(存在?)

还有其他选择吗?

提前感谢您的想法

莫罗

3 个答案:

答案 0 :(得分:2)

标准列表视图不能满足您的要求吗?它进行排序和过滤,并具有渐进式提取功能。我会尝试让用户在复制之前使用该界面。

我做了一个自定义SPGridView。它的行为有点像标准列表视图。但要使其正常工作需要付出很多努力,特别是在排序和分页方面。这种分页排序就像这样。 SPListItemCollectionPosition是关键。最后,当它升级到sp2010时,我让利益相关者改变了他们的要求,所以我们可以使用标准列表视图。

public class SPPagedGridView : SPGridView {

    protected override void CreateChildControls() {
        base.CreateChildControls();     
        AllowPaging = true;
        PageSize = PAGE_SIZE;
        PageIndexChanging += new GridViewPageEventHandler(oGrid_PageIndexChanging);
    }

    protected override void InitializePager(GridViewRow row, int columnSpan, PagedDataSource pagedDataSource) {
        pagedDataSource.AllowCustomPaging = true;
        base.InitializePager(row, columnSpan, pagedDataSource);
    }

    void oGrid_PageIndexChanging(object sender, GridViewPageEventArgs e) {
        PageIndex = e.NewPageIndex;
        DataBind();
    }

    public override DataBind() {
        SPQuery q = new SPQuery();
        q.RowLimit = PAGE_SIZE;
        SPListItemCollectionPosition pos = new SPListItemCollectionPosition(value);
        q.ListItemCollectionPosition = pos;
        //SPList list = something;
        //list.GetListItems()
    }
}

答案 1 :(得分:2)

将SharePoint排除在外。如果这是一个常规的ASP.NET应用程序,你会怎么做?根据您的描述,您的自定义Web部件只是一个自定义ASP.NET自定义控件,可以在运行时放在页面上。听起来SharePoint只是Web部件的包装器,不需要与SharePoint数据或API进行交互。

如果在ASP.NET应用程序中使用SSRS,则使用报表查看器Web部件。否则,您可以使用GridView,Repeater,ListView,第三方控件等与Entity Framework,ADO.NET,LINQ to SQL等进行数据访问。每个都有利弊,没有一个尺寸适合所有答案。使用你最熟悉的东西,这对你正在尝试做的事情最有意义。

答案 2 :(得分:0)

我最近使用了Telerik SPRadGrid Web部件(适用于SP 2010),它可以完全声明性地绑定到SP2010 SQL后端。您可以在这里展示他们的演示网站:http://sharepoint.telerik.com/aspnet-ajax/Pages/default.aspx。它还支持从设计时绑定SP列表,我听说他们在工作中有Excel绑定,它将在下一个主要部分发布。