动态数据:如何将特定列值绑定到下拉列表中

时间:2012-09-14 16:06:40

标签: asp.net data-binding asp.net-dynamic-data

我正在开发一个类型为“ASP.NET动态数据LINQ到LINQ应用程序”的项目。

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

我指的是this博客。

现在我需要根据我的标准填充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);
        }

enter image description here

2 个答案:

答案 0 :(得分:0)

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

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

假设您的表WorkFlows的{​​{1}}列为Status类型(Boolean用于SQL Server),您希望bit控件具有DropDownListfalse值(默认情况下,用户可以从全部,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 Class的更多信息。

您还可以在ASP.NET Dynamic Data automatically populating a Drop Down list based on Metadata查看我的帖子。

答案 1 :(得分:-1)

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