对于我正在处理的项目,我们正在寻找一种方法来动态地向页面添加过滤器,然后控制数据输出,例如网格。我们想要动态添加过滤器,因为我们希望客户能够更改可以过滤的属性以及应该使用的文件类型(文本框,下拉列表,颜色标记等)。
过滤器的工作方式如下: - 客户将过滤器链接到某个属性并指定过滤类型(对于此示例:下拉列表)。 - 包含所有过滤器的用户控件加载指定的所有过滤器 - 过滤器将指定属性的所有值加载为选项。第一次加载页面;这将是所有项目的价值。 - 现在用户从其中一个过滤器中选择一个值;页面重新加载 - 仅检索具有指定过滤器值的项目,用户可以同时指定一个或多个过滤器。 - 一旦用户通过过滤向下钻取,则只应在其他过滤器中使用检索到的项目的过滤值。
我有以下问题: - 当我创建过滤器运行时,事件会丢失,因为每次回发都会重新创建控件。 - 我可以将过滤器放在PreInit中,这应该解决这个问题,然后确定应该加载哪些控件会成为一个问题,因为加载所有环境变量还没有完成 - 我不知道将所有过滤器值返回到中心点的好方法,我可以从中获得良好的查询。 - 查询必须是动态的。我正在使用linq,我想让它变得动态,所以我不必每次都选择一切。如何根据存储在数据库中的字符串进行动态选择查询? - 我必须根据过滤值选择项目,然后将剩余的过滤器调整为已经做出的选择。这种方式会扰乱整个常规的数据绑定序列。
上述任何一项任何帮助都会很棒!
PS:我想到的一件事就是在回发中传递过滤器值,这些值必须是可识别的。这样,服务器可以使用它们进行选择,然后创建过滤器并自动选择先前选择的过滤器值。我不太确定如何实现这一点......