讓我進一步解釋,我有很多人在我的分貝。並且他們有一對多的選擇來制定行動計劃,我的頁面會顯示所有有行動計劃的人。我也有dropdownlist過濾器扔了所有的行動計劃的人...這工作正常。 dropdownlists正常工作,我不能得到的部分是有一個dropdownlist過濾器與人名(查找所有的人的行動計劃),但下拉列表顯示所有名稱在數據庫中,而不僅僅是有行動計劃,有沒有辦法限制下拉列表只顯示有行動計劃的人?我怎樣才能將下拉列表中的選項限制爲僅有效的選項?
抱歉,如果已經有這個帖子......我一直在尋找,尋找,但無法找到解決
感謝
附:這可能幫助....沒錯我使用MVC 這在我看來是
<td><%=Html.DropDownList("FORMER_BORROWER", "All")%></td>
<td><%=Html.DropDownList("CURRENT_OWNERSHIP_ENTITY", "All")%></td>
<td><%=Html.DropDownList("RESPONSIBLE_PARTY", "All")%></td>
<td><%=Html.DropDownList("COMPLETED", "All")%></td>
<td><%=Html.DropDownList("TARGET_DATE", "All")%></td>
這是在我的控制器
var predicate = PredicateBuilder.False<ACTION_PLAN>();
predicate = predicate.Or(p => p.COMPLETED != null);
// former borrower
if ((Request.Form["FORMER_BORROWER"] != null) && Request.Form["FORMER_BORROWER"] != "")
{
FormerBorrower = Request.Form["FORMER_BORROWER"];
ViewData["FORMER_BORROWER"] = new SelectList((from n in _db.Loans where (n.FORMER_BORROWER_NAME != null) select new { n.FORMER_BORROWER_NAME, FORMER_BORROWER_NAMEID = n.FORMER_BORROWER_NAME }).Distinct().ToList(), "FORMER_BORROWER_NAMEID", "FORMER_BORROWER_NAME", FormerBorrower);
predicate = predicate.And(p => p.Loan.FORMER_BORROWER_NAME == FormerBorrower);
}
else
{
FormerBorrower = "";
ViewData["FORMER_BORROWER"] = new SelectList((from n in _db.Loans where (n.FORMER_BORROWER_NAME != null) select new { n.FORMER_BORROWER_NAME, FORMER_BORROWER_NAMEID = n.FORMER_BORROWER_NAME }).Distinct().ToList(), "FORMER_BORROWER_NAMEID", "FORMER_BORROWER_NAME");
}
// current ownership entity
if ((Request.Form["CURRENT_OWNERSHIP_ENTITY"] != null) && Request.Form["CURRENT_OWNERSHIP_ENTITY"] != "")
{
CurrentOwnershipEntity = Request.Form["CURRENT_OWNERSHIP_ENTITY"];
ViewData["CURRENT_OWNERSHIP_ENTITY"] = new SelectList((from n in _db.DOM_CURRENT_OWNERSHIP_ENTITies select n).ToList(), "CURRENT_OWNERSHIP_ENTITY", "CURRENT_OWNERSHIP_ENTITY", CurrentOwnershipEntity);
predicate = predicate.And(p => p.Loan.DOM_CURRENT_OWNERSHIP_ENTITY.CURRENT_OWNERSHIP_ENTITY == CurrentOwnershipEntity);
}
else
{
CurrentOwnershipEntity = null;
ViewData["CURRENT_OWNERSHIP_ENTITY"] = new SelectList((from n in _db.DOM_CURRENT_OWNERSHIP_ENTITies select n).ToList(), "CURRENT_OWNERSHIP_ENTITY", "CURRENT_OWNERSHIP_ENTITY");
}
// responsible party
if ((Request.Form["RESPONSIBLE_PARTY"] != null) && Request.Form["RESPONSIBLE_PARTY"] != "")
{
ResponsibleParty = Request.Form["RESPONSIBLE_PARTY"];
ViewData["RESPONSIBLE_PARTY"] = new SelectList((from n in _db.ACTION_PLANs select n).ToList(), "RESPONSIBLE_PARTY", "RESPONSIBLE_PARTY", ResponsibleParty);
predicate = predicate.And(p => p.RESPONSIBLE_PARTY == ResponsibleParty);
}
else
{
ResponsibleParty = null;
ViewData["RESPONSIBLE_PARTY"] = new SelectList((from n in _db.ACTION_PLANs select n).ToList(), "RESPONSIBLE_PARTY", "RESPONSIBLE_PARTY");
}
// completed
if ((Request.Form["COMPLETED"] != null) && Request.Form["COMPLETED"] != "")
{
Completed = System.Convert.ToBoolean(Request.Form["COMPLETED"]);
ViewData["COMPLETED"] = new SelectList((from n in _db.ACTION_PLANs where (n.COMPLETED != null) select new { n.COMPLETED}).Distinct().ToList(), "COMPLETED", "COMPLETED", Completed);
predicate = predicate.And(p => p.COMPLETED == Completed);
}
else
{
Completed = System.Convert.ToBoolean(null);
ViewData["COMPLETED"] = new SelectList((from n in _db.ACTION_PLANs where (n.COMPLETED != null) select new { n.COMPLETED }).Distinct().ToList(), "COMPLETED", "COMPLETED");
}
// target date
if ((Request.Form["TARGET_DATE"] != null) && Request.Form["TARGET_DATE"] != "")
{
TargetDate = System.Convert.ToDateTime(Request.Form["TARGET_DATE"]).ToString("MM/dd/yyyy");
ViewData["TARGET_DATE"] = new SelectList((from n in _db.ACTION_PLANs select n).ToList(), "TARGET_DATE", "TARGET_DATE", TargetDate);
predicate = predicate.And(p => p.TARGET_DATE == Convert.ToDateTime(TargetDate));
}
else
{
TargetDate = "";
ViewData["TARGET_DATE"] = new SelectList((from n in _db.ACTION_PLANs select n).ToList(), "TARGET_DATE", "TARGET_DATE");
}
那麼你是否將你的ddl綁定到所有人的列表?是否有任何理由不能過濾您綁定的數據源,以便它只包含具有行動計劃的人員?您可以在代碼層或數據訪問層執行此操作。這應該是微不足道的實現 - 也許代碼示例將有助於確定你卡在哪裏? – 2011-01-26 21:42:29
大衛是正確的......如果我們知道你是如何填充你的DDL,我們將能夠更好地幫助你。爲了搭載大衛說的話,你可以使用LINQ過濾集合的結果,你可以再次調用你的數據庫並將結果綁定到你的DDL等等。這隻取決於你如何將數據提供給DDL。 – jonnyb 2011-01-26 22:18:14