我有一些项目的集合。使用*符号我在所有这些的演示文稿详细信息中设置用户控件(ascx)。现在我有一个问题,因为这个项目必须在另一个控件中显示。是否有一些技巧允许我动态更改使用的控件,例如检查网址段?
答案 0 :(得分:1)
我猜测你正在使用名为wildcard
的{{1}}项,并在其上定义了一些演示详细信息。现在你想为网址显示不同的组件?
如果您想要完全不同的演示文稿,可以添加另一个项目作为*
项目的兄弟,并在其中添加新的演示文稿详细信息。如果网址段等于此项目名称,则此项目将在通配符项目之前匹配。
如果您只想更改一个或几个组件,可以对此组件和*
规则使用个性化。
答案 1 :(得分:1)
Marek的答案是可取的,但为了完整起见,我将提供另一种可能的选择。
这取决于你如何处理通配符。如果你使用的是市场中的通配符模块,我认为它不会起作用,而且它可能不适合你现有的一些代码,但是这里有...
您可以将所需的演示文稿详细信息放在目标项目本身上。然后,当您解析通配符时,您需要将上下文项更改为选定的目标项。当页面加载时,它将使用新设置的上下文项的表示。
实现此目的的一种方法是创建自定义项目解析器
class WildCardItemResolver : ItemResolver
{
public override Process(HttpRequestArgsargs args)
{
base.Process(args);
// if Context.Item is as wildcard
// look up the target item
Context.Item = targetItem
}
}