【发布时间】:2011-02-20 11:22:48
【问题描述】:
我有一个 webpart 可以在列表之外工作,但我正在尝试创建一个包含共享点列表列表的下拉列表,以便当用户编辑页面并选择“修改共享 webpart”时,他们能够选择一个列表项,然后将其解析回 Webpart。
任何示例或示例链接表示赞赏!
谢谢
丹
【问题讨论】:
标签: sharepoint web-parts
我有一个 webpart 可以在列表之外工作,但我正在尝试创建一个包含共享点列表列表的下拉列表,以便当用户编辑页面并选择“修改共享 webpart”时,他们能够选择一个列表项,然后将其解析回 Webpart。
任何示例或示例链接表示赞赏!
谢谢
丹
【问题讨论】:
标签: sharepoint web-parts
您要查找的内容称为 Toolpart。请查看this example,获取有关如何创建的教程。
总的来说,您的一般步骤是:
Microsoft.SharePoint.WebPartPages.ToolPart 的自定义 Toolpart 类
CreateChildControls,编写代码以迭代您的 SPWeb 中的列表,并将它们添加到 DropDownListGetToolParts 并添加您的自定义 ToolPart,使其显示在右侧【讨论】:
听起来您想创建一个自定义编辑器部件。在该部分中,您将有一个下拉列表显示列表的名称(您可能想要过滤隐藏列表和空列表),当从列表中选择一个项目时,第二个下拉列表显示所选项目的标题列列表。
这里有一些代码(在此处编辑,因此需要清理)来帮助您入门:
protected Page_Load(...)
{
if (IsPostBack) return;
var web = SPContext.Current.Web;
var query = from list in web.Lists
where list.Hidden == false && list.ItemCount == 0
select list;
DropDownList1.DataSource = query;
DropDownList1.DataTextField = "Title";
DropDownList1.DataBind();
}
protected DropDownList1_SelectedIndexChanged(...)
{
var web = SPContext.Current.Web;
var listName = DropDownList1.Text;
var list = web.Lists[listName];
var table = list.Items.GetDataTable();
DropDownList2.DataSource = table;
DropDownList2.DataTextField = "Title";
DropDownList2.DataValueField = "ID";
DropDownList2.DataBind();
}
【讨论】: