ASP.Net复选框和if语句

时间:2014-07-09 19:34:33

标签: asp.net .net sql-server

我被要求开发一个应用程序,其中一个成员可以选择一个计划,一个计划组合,所有计划,或者没有。

plan1, plan2, plan3, .... plan12

我跑了真相表,找出有多少可能性,结果是4096.(荒谬!)

我的计划是为每种可能性写一个if声明:

if (plan1.Checked == true && plan2.Checked == false && ... && plan12.Checked == false){
    // insert into into table test VALUES('Plan1')
}

等等!显然,必须有一种比这更好,更容易的方法。任何建议都会有帮助。谢谢大家。

2 个答案:

答案 0 :(得分:1)

如果您使用CheckBoxList或类似组件,这将是一种方法。

CheckBoxList checkBoxList = ....;  // Just an example here
// You would add the different project names into the CheckBoxList

String message = "";

for (int i = 0; i < checkBoxList.Items.Count; i++) // Look at every project name
{
    if (checkBoxList.Items[i].Selected) // See if it's selected
    {
        message += checkBoxList.Items[i].Text; // Add the name to the message
    }
}

Put message in DB; // <-- Store the message into your database here

由于您只对选定的商品感兴趣,因此您根本不必处理未选择的商品。

注意:创建字符串的方法可能比这更好/更有效,您可以使用lambda表达式。这只是一个简单的方法。

答案 1 :(得分:0)

Andrew_CS答案是合适的,我更喜欢它,但这是另一种方式:

在所有复选框后面的代码中处理已检查的事件(使用一个事件,但允许所有复选框由其处理),并且根据发件人的不同,您可以加载所需的信息。

在复选框检查事件期间,您可能会使用Select语句为每个复选框加载相关信息(可能比for循环更容易理解!)