如何处理" ID' ...'有条件地删除控件时,另一个控件是否已使用它?

时间:2016-04-24 15:18:54

标签: asp.net vb.net

我有一个自定义控件,目前有条件地呈现内容:

<me:CustomControl>
    <switch>
        <if "expression is true">
            <textbox id="Name" />
        </if>
        <if "expression is true">
            ...
        </if>
        <else>
            <textbox id="Name" />
        </else>
    </switch>
</me:CustomControl>

我上面的例子没有逻辑意义,但直截了当。通过覆盖<if>函数来评估GetChildControlType标记。 <textbox>内部<if><if>控件生成器中进行评估。

我想要做的是从集合中完全删除控件,或者更好的是,防止将Public Overrides Function GetChildControlType(ByVal tagName... ) As Type 的子控件添加到集合中。如果我尝试删除它们OnInit,我仍然会收到错误&#34; ID&#39; Name&#39;已被另一个控件使用。&#34;

我无法在:

中对它们进行评估
CreateChildControls

因为我需要在其中的所有if和else上执行逻辑。

也许有更好的方法?

更新

即使覆盖{{1}},如果有多个具有相同ID的控件,即使我将这个东西分解为裸骨,也会出现编译错误。不确定我是否可以解决这个问题。

0 个答案:

没有答案