可以说我有三个 DropDownList 在Web用户控件中进行控件,它们相互依赖。

  • 类别
  • 品牌
  • 产品

解释:在我从类别下拉列表中选择类别后,相关品牌已加载在品牌中 DropDownList 当我选择特定品牌并且它们都位于Web用户控件中时,也会发生同样的情况,因为我在不同的页面上使用了太多,因此我不想在所有页面上复制并粘贴相同的代码。

问题: 这些页面可以包含一个 GridViewDataSource 控制需要额外 Where 参数以获取所需的所有数据,该参数可能取决于产品中的选定产品 DropDownList 控制。

问题: 那我怎么能得到 从产品下拉列表中选择的产品值 将其绑定到 SQLDataSource 或其他任何 DataSource 控制。

我的想法: 我相信我可以以随后的方式解决这个问题。

  • 我可以使用静态变量,该变量一旦选择了产品就会更新。该字段变量可能是公开的,因此每个人都可以达到
  • 选定的产品下拉列表可以创建一个Querystring字段,以供我抓住所选值。
  • 以同样的方式,下拉列表可以即时创建会话变量,我可以获取值
  • 它可以创建一个隐藏的字段。

但: 好吧,这些是我的一些想法,但我发现它们是如此天真地实施。我需要一些优雅而令人满意的东西来解决这个问题。它应该像从Web用户控制到外部世界的网关一样。

也许单独的类或属性可以在网关解决方案中帮助我。

无论如何,我正在等待您的答案。

有帮助吗?

解决方案

如果我正确理解这个问题:

您可以将属性添加到用户控件中,该属性曝光产品DDL选定值。

您还可以从用户控件中添加和提出一个事件,当产品DDL选定的值更改时,该事件发射。创建包含产品值的自定义事件参数,允许其直接传递给事件处理程序。

然后,您的页面可以处理用户控件提出的事件,具有产品值并绑定网格。

其他提示

您可以将dropdownlist.selectedIndexchanged事件绑定到相同的函数,并测试每个下拉列表的选定值属性。如果他们选择的值有效,请将网格绑定到您的数据源。

过去,当我需要用户在查询数据库之前输入一定数量的数据时,我已经这样做了。如果下拉列表无效,则将隐藏的属性设置在我的GridView上,并在正确绑定时将其重置。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top