我在功能区“SelectCp”上创建了一个按钮。
单击按钮我正在启动自定义aspx页面。
自定义aspx页面的下拉列表包含。
现在,当用户选择“选择CP”选项时,我需要在aspx页面上的listitem中填充所有发布。当用户选择发布时,我需要填充另一个列表中的所有组件。
有人能说出如何继续吗?
ADDED
我正在继续这样做,但它没有在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;
}
}
答案 0 :(得分:3)
我们在PowerTools 2011 open source project上提供了此类“发布”下拉列表和其他控件的示例。请参阅示例扩展程序来源:
首先查看这些内容,然后在您准备好后分享您的代码或启动其他问题。
请注意,不错的volunteers for the project创建了base class,可以完成部分工作。
答案 1 :(得分:2)
允许用户选择项目的一个很好的例子可以在Item Selector extension中找到。
它有大部分要求的部分,但不一定是复制/粘贴格式。如果您根据自己的需要修改或者某个部分不清楚,请研究并联系我们。
答案 2 :(得分:1)
此项目选择器扩展当然很好,但由于出版物的数量不会经常变化,您还可以考虑从配置文件中检索此列表的数据。
通过这种方式,您可以更轻松地使用适当的出版物过滤此列表,而不仅仅是用户有权访问的出版物。