我想创建一个Sharepoint Web部件,以显示来自ODBC源的大量数据(在第一个实例中是SQL Server 2008数据库),能够对数据进行排序和过滤,可能会逐渐取材。
您对使用的技术有何建议?
还有其他选择吗?
提前感谢您的想法
莫罗
答案 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绑定,它将在下一个主要部分发布。