【发布时间】:2019-03-20 18:35:53
【问题描述】:
我有一个输入控件列表,例如 Date selector, Select box, textbox, checkbox。我想根据用户选择的类型设置可见的真假。
我已经尝试过下面的工作,但只是想知道我是否可以使这个 Dry 并从单个函数或其他东西进行有效调用。任何建议将不胜感激。
请忽略文本框的命名或任何其他内容,因为这只是一个示例。
if (attribute_type == "T") {
Value1_tbx.Visible = true; // this is true
Value1_tbx.Text = some_text_value; // and set some value
Value_ddl.Visible = false;
Value_Date_tbx.Visible = false;
Value_Date_calendar_img.Visible = false;
Value_rbl.Visible = false;
} else if (attribute_type == "S") {
Value1_tbx.Visible = false;
Value_ddl.Visible = true; // this is true
Value_ddl.Text = some_select_box_value; // and set some value
Value_Date_tbx.Visible = false;
Value_Date_calendar_img.Visible = false;
Value_rbl.Visible = false;
} else if (attribute_type == 'D') {
Value1_tbx.Visible = false;
Value_ddl.Visible = false;
Value_Date_tbx.Visible = true; // this is true
Value_Date_calendar_img.Visible = true; // calendar icon should be visible
Value_Date_tbx.Text = some_date_value; // and set some value
Value_rbl.Visible = false;
} else if (attribute_type == 'R') {
Value1_tbx.Visible = false;
Value_ddl.Visible = false;
Value_Date_tbx.Visible = false;
Value_Date_calendar_img.Visible = false;
Value_rbl.Visible = true; // this is true
Value.rbl.Text = some_value; // and set some value
};
【问题讨论】:
-
attribute_type是string还是char?你说“下面的工作正常”,但代码不应该编译,因为你正在将它与两种类型进行比较 -
附带说明一下,如果您每次都以相同的顺序设置值会更容易阅读 - 它使视觉比较更容易。
-
@Rufusl 这是一个字符。谢谢
-
我已经编辑并按相同的顺序放置了
-
您可以在第一个
if之外将它们全部设置为 false 或 true。然后只隐藏你不需要的那些。它保存了一些重复项。
标签: c# asp.net webforms code-behind