2012-09-14 43 views
-1

我正在开发一个类型为“ASP.NET动态数据LINQ to 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

+0

您确定您正在使用“ASP.NET动态数据LINQ to LINQ应用程序”吗?据我所知,它来自http://msdn.microsoft.com/en-us/library/ee845452(v=vs.100).aspx,有'LINQ to SQL'和'ADO.NET实体框架'用于生成数据模型的技术。 – Konstantin

回答

0

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

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

让我们假设你有表WorkFlowsBooleanStatus柱(bit用于SQL Server),你会喜欢的DropDownList控制只有false值(默认情况下,用户可以从全,真,假选择过滤器值,[未设置]如果列允许空值)。

首先复制内置过滤器模板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

我假设的数据类型要绑定是一个可空布尔(布尔?)。分配数据源属性时,可以使用myObjects.Where(o => o.TheNullableBool.HasValue)