【问题标题】:Hide collection of controls based on condition根据条件隐藏控件集合
【发布时间】:2012-11-21 16:36:21
【问题描述】:

我有一个 asp.net 页面,在页面的顶部和底部都有公共控件。 (约 75% 的对照)。 其余控件由 page_load 条件控制。

所以,我有,比如说:30 个控件和 5 个条件。
在 page_Load 上,我必须执行以下操作:

     if (condtion1)
       {
        control1.Visible=false;
        control2.Visible=true;
        control3.Visible=false;
        control4.Visible=true;
        ...etc...
       }
     else if (condition2)
      { contorl1.Visible=true;
        control2.Visible=true; 
        control3.Visible=true;
       ...etc...
      }
      ...etc....

是否有更好的方法来控制多个控件的控件可见性?请注意,控件可以重叠,即条件 1 和条件 2 可以具有相同的可见控件。

我的想法是创建 20 个控件并拥有某种面板,您可以在其中定义哪些控件属于该面板,但不确定它是否存在。

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

    我个人更喜欢这样的:

    control1.Visible = condition1;
    control2.Visible = condition1 || condtion2;
    control3.Visible = condition2;
    

    您可以将控件或条件组合在一起,以使您的意图更加明显。

    【讨论】:

    • 乔恩,感谢您的回答。如果我还需要控制控件的顺序,您是否可以做一些漂亮的事情?它们都垂直对齐在一列中。我正在考虑使用某种描述性 XML 来存储每个条件的控件的顺序和可见性。但我不确定这是否可能。或者我应该使用完全独立的表格?
    • @user194076 如果您想显示/隐藏以及重新排序,最好动态生成控件而不是在设计时生成控件。
    猜你喜欢
    • 2021-05-28
    • 2016-10-29
    • 1970-01-01
    • 2022-08-21
    • 2021-05-02
    • 2020-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多