1

我在功能区“SelectCp”上创建了一个按钮。

按钮的 OnClick 我正在启动一个自定义 aspx 页面。

自定义 aspx 页面有一个下拉菜单,其中包含类似的项目。

  1. 选择CP
  2. ETC

现在,当用户选择“选择 CP”选项时,我需要在 aspx 页面上的列表项中填充所有发布。当用户选择一个出版物时,我需要在另一个列表中填充所有组件。

谁能给一个想法如何进行?

添加

我正在像这样进行,但它没有在 aspx 页面的列表框中给出发布列表。

protected void ddSelectOption_SelectedIndexChanged(object sender, EventArgs e)
    {
        //CommonTridionTools objCmnUnPub = new CommonTridionTools();
        CoreServiceSession client = new CoreServiceSession();
        SessionAwareCoreServiceClient csClient = client.GetClient();
        ReadOptions readoption = new ReadOptions();
        List<string> PublicationList = new List<string>();
        List<string> ComponentList = new List<string>();

        if (ddSelectOption.SelectedItem.Equals("Select CP"))
        {
            FolderData RootFolder =(FolderData)csClient.Read(tridionPageId, readoption);
            var filter = new OrganizationalItemItemsFilterData
            {
                Recursive = true,
                ItemTypes = new ItemType[] { ItemType.Publication,ItemType.Component, ItemType.ComponentTemplate },
            };
            XElement CompList = csClient.GetListXml(RootFolder.Id,filter);

            foreach (var comp in CompList.Elements())
            {
                PublicationData Publication =(PublicationData)csClient.Read(comp.Attribute("ID").Value, readoption);
                var MetadataXML = new XmlDocument();
                MetadataXML.LoadXml(Publication.Metadata);
                PublicationList.Add(Publication.Id)
                lbPublication.DataSource = PublicationList;

            }
        }
4

3 回答 3

3

我们在PowerTools 2011 开源项目中提供了此类发布下拉列表和其他控件的示例。请参阅示例扩展源:

首先查看这些内容,然后分享您的代码或在您准备好后开始另一个问题。

请注意,该项目的好志愿者创建了一个基类来完成一些工作。

于 2012-07-28T07:17:42.497 回答
2

允许用户选择项目的一个很好的例子可以在项目选择器扩展中找到。

它具有您要求的大部分部分,但不一定采用复制/粘贴格式。如果您无法根据自己的需要对其进行修改或某个部分不清楚,请研究它并与我们联系。

于 2012-07-28T11:54:26.917 回答
1

这个项目选择器扩展当然很好,但由于出版物的数量不会经常变化,您也可以考虑从配置文件中检索此列表的数据。

这样,您还可以更轻松地仅使用适当的出版物过滤此列表,而不仅仅是用户有权访问的出版物。

于 2012-07-29T10:15:14.343 回答