动态数据:如何在编辑页面上过滤外键的下拉列表

Leo*_*alt 4 .net dynamic-data linq-to-sql

使用Linq-to-SQL和动态数据.

在动态数据编辑屏幕上,下拉列表列出了外键的可能值.

我需要过滤此下拉列表中列出的值,最好是在linq-to-sql查询中添加where子句.

有任何想法吗?

Leo*_*alt 5

好吧,我找到了一个自定义的地方,虽然我还没有找到一种方法来覆盖或扩展linq查询来加载数据:

在文件\ DynamicData\FieldTemplates\ForeignKey_Edit.ascx.cs中(根据默认位置),在Page_Load方法中进行以下调用:

PopulateListControl(DropDownList1);
Run Code Online (Sandbox Code Playgroud)

这可以完全用您自己的代码替换.在我的例子中,我首先检查当前表是否实现了我定义的自定义接口.如果是,则使用它来获取数据以绑定下拉列表,否则将控制权传递给PopulateListControl.

使用Reflector,似乎PopulateListControl最终使用MetaTable.GetQuery()来获取表的默认列表查询.本来可以很好地反过来..但现在转向其他事情!