我正在开发一个类型为“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);
}
答案 0 :(得分:0)
为了自定义动态数据网站中DropDownList
控件中的数据,您应该使用FilterUIHintAttribute
类(在您的元数据中)允许替换(或添加新过滤器)默认值(built-in filters templates
过滤器。
考虑为Boolean
类型的列实施新的过滤器模板使用内置过滤器模板的示例(如附图所示)。
假设您的表WorkFlows
的{{1}}列为Status
类型(Boolean
用于SQL Server),您希望bit
控件具有DropDownList
仅false
值(默认情况下,用户可以从全部,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 )
。