找到在asp.net中选择的控件

问题描述:

您好我正在为客户端构建一个Web应用程序,并使用一些独特的控件和条件。一页涉及一个由大约100个组合框和列表框组成的详细搜索功能。我正在尝试做的是做一个foreach(已经被改变/选择的控件),并将它提供给一个函数来生成一个查询。有100个,但用户可能只使用三个特定的搜索?找到在asp.net中选择的控件

我知道必须有办法做到这一点。在此先感谢您的帮助

+0

调用这个也许你应该有复选框这使每一个标准,这样,你就会知道,哪些是“使用”。 – 2011-05-16 00:51:46

那么你可以使用类似:

List<Control> list = new List<Control>(); 

public void ControlRecursive(Control Root) 
    { 
     if(typeof(ComboBox) == Root.GetType() && ((ComboBox)Root).Checked) 
      list.Add(Root); 
     else if (Root is RadListBox) 
     { 
      // deal with RadListBox here 
     } 
     // if all your other types 
     // ... 

     foreach (Control Ctl in Root.Controls) 
      ControlRecursive(Ctl); 
    } 

然后用ControlRecursive(form1);

+0

这正是我想要做的事情,我正在玩java数组的想法,但是我最好用java来做shakey。让我问你一个问题。我正在使用Telerick RadListBox我似乎无法获得typeof识别。它与一个正常的ASP控制,不建议? – 2011-05-16 15:25:43

+0

你应该问作为一个单独的问题,我不知道答案,除非说RadListBox可能继承自ListBox类型,并且可以检查它。 typeof()在自定义类上工作,所以我真的不知道为什么这不起作用。如果你需要它,那么就开始另一个关于如何使用该控制语句的问题。很高兴我可以帮助循环。 – 2011-05-16 18:18:49

+0

我最终使用移动到常规列表框,我想使用rad列表框的唯一原因是因为您可以轻松地添加一个复选框,我觉得这是一个更友好的用户界面。再次感谢您的帮助 – 2011-05-16 19:09:20

您可以为每个控件都有一个与onchange/select关联的javascript函数,然后将已选择的项添加到javascript数组中。然后,您可以将该数组传递给您的查询生成,以了解要搜索的变量。