如何以相对较短的方式编辑多个对象的属性?

时间:2015-06-11 08:05:45

标签: c# asp.net controls

我根据labels的选择更改了许多TextBoxesRadioButtonList的可见状态。随着页面的增长,这些控件变得越来越长。我认为必须有一个更简单,更短的方法来做到这一点,但我找到的每个解决方案都会导致更长的代码。

以下是我正在做的事情的一个例子:

if (Tip == "Firma")
{
    fsFirma.Visible = true;
    txtGtip.Visible = false;
    lblGtip.Visible = false;
    lblFirmaGtip.Visible = false;
    txtFirmaGtip.Visible = false;
    lblFirmaInfo.Visible = true;
    lblGtipGrup.Visible = false;
    drpGtipGrup.Visible = false;
}

这种类型的控件适用于RadioButtonList的每4个选项。

其中8个中有6个被设置为false。是否有另一种语法或方法可以同时为其分配false?或者这是正确的方法吗?我认为较短的代码可能不是最好的方式,但这些人看起来仍然可以缩短一点。

修改:我忘了提及我知道我可以在asp代码上将默认设置设置为false,并将所需的设置设为true,但我和#39; m也要求看其他方法。

1 个答案:

答案 0 :(得分:2)

使用foreach语句迭代控件集合,如下所示:

if (Tip == "Firma")
{
    foreach (Control item in yourDiv.Controls)
     {
        item.Visible = false;
     }
    fsFirma.Visible = true;
    lblFirmaInfo.Visible = true;
}

假设您的Div元素是这样的:

<div id="yourDiv" runat="server">
   <%--your controls--%>
</div>