我正在使用ASP.Net动态数据,Visual Studio 2010和C#。
我有三个自定义控件(FieldTemplates),扩展名为.ascx:business_type.ascx
,department.ascx
,section.ascx
如果我从第一个组合框中选择了cod_business类型= = 6我只想显示那些 cod_business = 6
的部门让我们说我有500个部门,但只有5个,128个和446个完成了这个规则。
我们还要说我有2,500个部分:
我还想在第三个组合框中只显示cod_business = 6且cod_dept = 5或128或446的部分,具体取决于我从部门组合框中选择的部分
请记住:这必须适用于ASP.Net 4.0动态数据
这可以实现吗?
我见过Steve Naughton的Cascading解决方案,但它们是面向数据库的。
我需要以“更多内在形式连接”下拉列表,这意味着我没有用于填充每个下拉列表的实体,但是每个下拉列表中包含的值列表本身。我通常从小型Excel电子表格或小文本文件中提取这些值。
最好的问候。
答案 0 :(得分:0)
您最初如何填充下拉列表的值?他们是数据绑定控制吗?
无论如何,您需要一种方法与回发中的这3个控件进行交互以实现过滤。一种方法是将DropDownList作为用户控件的属性公开。在您的代码中,您将添加类似于此的属性:
public DrowDownList List {
get { return this.DropDownInsideTheControl; }
set { this.DropDownInsideTheControl = value; } }
为OnSelectedIndexChanged
事件添加适当的事件处理程序,并将AutoPostBack
设置为true
,您应该很高兴。然后在页面上包含您可以管理所需过滤的所有控件。
这种方法可行,但我认为将3个下拉分隔为单独的用户控件会让您的生活更加艰难。这三个控件都是如此密切相关,将它们全部包含在同一个用户控件中可能是有意义的。这样您就可以更直接地与他们互动,并更轻松地管理他们的关联关系。您仍然可以将列表公开给控件正在运行的Page
,如上所述。