2012-09-14 68 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)