【问题标题】:Sharepoint webpart combobox of lists列表的 Sharepoint webpart 组合框
【发布时间】:2011-02-20 11:22:48
【问题描述】:

我有一个 webpart 可以在列表之外工作,但我正在尝试创建一个包含共享点列表列表的下拉列表,以便当用户编辑页面并选择“修改共享 webpart”时,他们能够选择一个列表项,然后将其解析回 Webpart。

任何示例或示例链接表示赞赏!

谢谢

【问题讨论】:

    标签: sharepoint web-parts


    【解决方案1】:

    您要查找的内容称为 Toolpart。请查看this example,获取有关如何创建的教程。

    总的来说,您的一般步骤是:

    1. 创建继承自 Microsoft.SharePoint.WebPartPages.ToolPart 的自定义 Toolpart 类
    2. 在您的自定义 Toolpart 中,覆盖 CreateChildControls,编写代码以迭代您的 SPWeb 中的列表,并将它们添加到 DropDownList
    3. 在您的 webpart 中,覆盖 GetToolParts 并添加您的自定义 ToolPart,使其显示在右侧

    【讨论】:

    • 非常感谢这是我所走的路线,而 MSDN 文章让我继续前进。
    【解决方案2】:

    听起来您想创建一个自定义编辑器部件。在该部分中,您将有一个下拉列表显示列表的名称(您可能想要过滤隐藏列表和空列表),当从列表中选择一个项目时,第二个下拉列表显示所选项目的标题列列表。

    这里有一些代码(在此处编辑,因此需要清理)来帮助您入门:

    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();
    }
    

    【讨论】:

      猜你喜欢
      • 2015-05-05
      • 2020-11-05
      • 2015-08-12
      • 2021-03-22
      • 2022-11-23
      • 2011-01-04
      • 2021-01-11
      • 2011-05-03
      • 2019-04-11
      相关资源
      最近更新 更多