-1

我正在研究“ASP.NET 动态数据 LINQ to LINQ 应用程序”类型的项目。

当我执行我的应用程序时,我得到所有标签和 DropDownLists 动态绑定。

我指的是这个博客。

现在我需要根据我的标准填充那些 DropDownList。目前,它正在填充该列的表中的所有记录。如何自定义此 DropDownList 就像我只想选择具有Mak名称的用户一样?

我想我需要在下拉填充值时在这里进行一些 linq 查询?没有把握

protected void Page_Load(object sender, EventArgs e)
        {
            if (DropDownList1.Items.Count == 0)
            {
                if (Mode == DataBoundControlMode.Insert || !Column.IsRequired)
                {
                    DropDownList1.Items.Add(new ListItem("[Not Set]", ""));
                }
                PopulateListControl(DropDownList1);
            }

            SetUpValidator(RequiredFieldValidator1);
            SetUpValidator(DynamicValidator1);
        }

在此处输入图像描述

4

2 回答 2

0

为了DropDownList在动态数据站点中自定义控制数据,您应该使用FilterUIHintAttribute允许替换(或添加新过滤器)默认(built-in filters templates)过滤器的类(在您的元数据中)。

考虑使用类型列的内置Boolean过滤器模板实现新过滤器模板的示例(如附图所示)。

假设您有一个类型为WorkFlowsStatus的表Booleanbit对于 SQL Server),并且您希望该DropDownList控件只有false值(默认情况下,如果该列允许空值,用户可以从All、True、False[Not Set]中选择过滤器值)。

首先复制内置过滤器模板Boolean.ascx(您可以在~\DynamicData\Filters目录中找到它),然后将其粘贴到同一目录中。然后将新过滤器重命名为StatusBoolean.ascx.

然后你可以编辑代码隐藏StatusBoolean.ascx和删除行

DropDownList1.Items.Add(new ListItem("True", Boolean.TrueString));

WorkFlows然后您应该更改实体的元数据:

[FilterUIHint("StatusBoolean")]
public bool Status { get; set; }

就这样。

FilterUIHintAttribute 类的更多信息。

您还可以查看我在ASP.NET Dynamic Data 中根据 Metadata 自动填充下拉列表的帖子。

于 2013-05-13T10:20:07.980 回答
-1

我假设您要绑定的数据类型是可为空的 bool(bool?)。分配 DataSource 属性时,您可以使用myObjects.Where( o => o.TheNullableBool.HasValue ).

于 2012-09-14T17:03:53.537 回答