假设我在Web用户控件中有三个DropDownList
控件,它们彼此依赖。
说明:
从“类别”下拉列表中选择一个类别后,相关品牌将加载到品牌DropDownList
中,当我选择特定品牌时也会出现同样的情况,因为我在不同页面上使用它太多,所以它们都位于Web用户控件中,我不想在所有页面上复制和粘贴相同的代码。
问题:这些网页可以包含GridView
和DataSource
控件,需要额外的Where
参数来获取所需的所有数据,该参数可以取决于产品DropDownList
控件中的所选产品。
问题那么我如何从产品DropDownList中获取选定的产品价值,以将其绑定到SQLDataSource
或任何其他DataSource
控件。
我的想法:我相信我可以通过以下方式解决这个问题。
但是:那些是我的一些想法,但我发现它们实施起来很天真。我需要优雅和满足的东西来解决这个问题。它应该类似于从Web用户控件到外部世界的网关。
也许一个单独的类或属性可以帮助我进入网关解决方案。
无论如何,我在等你的答案。
答案 0 :(得分:2)
如果我正确理解了这个问题:
您可以向用户控件添加属性,以公开产品DDL选定值。
您还可以添加和引发用户控件中的事件,该事件在产品DDL选定值更改时触发。创建包含产品值的自定义事件参数,允许它直接传递给事件处理程序。
然后您的页面可以处理用户控件引发的事件,获取产品值并绑定网格。
答案 1 :(得分:0)
您可以将DropDownList.SelectedIndexChanged事件绑定到同一个函数,并测试每个DropDownList的SelectedValue属性。如果他们的SelectedValues有效,请将网格绑定到您的DataSource。
我在过去做过这个,当我需要用户输入一定数量的数据才能查询数据库之前。如果DropDownLists无效,我在GridView上设置Hidden属性,并在它们被正确绑定时重置它。