2010-11-01 73 views
0

我想將這個查詢的結果返回到我可以用來填充SelectList的東西。我嘗試了一個NameValueCollection和一個IEnumerable,但都失敗了。如何從此Linq查詢填充SelectList?

給出此代碼的選項是什麼?此代碼不起作用,但查詢正是我想要的。


     public IEnumerable GetValidAssociationsForSelectList() 
     { 
      var associations = (from a in context.Associations 
           join u in context.Units on a.AssociationKey equals u.AssociationKey 
           where a.CCRRecording != null && a.CCRRecording.ToString() != "" 
           orderby a.LegalName 
           select new { a.AssociationKey, LegalName = a.LegalName.Replace("'", "") }).Distinct(); 
     } 

回答

0

您應該返回協會查詢:

public IEnumerable GetValidAssociationsForSelectList() { 

    var associations = (....) 

    return associations; 

} 

然後遍歷了IEnumerable填充在DropDownList的listItems中,這樣的事情:

foreach (var item in GetValidAssociationsForSelectList()) 
{ 
    ddlAssociations.Items.Add(new ListItem(item.AssociationKey, item.LegalName)); 
} 
0

您需要使您的select語句的返回類型與您的IEnumerable匹配。

這裏是去了解的一種方式:

public IEnumerable<ListItem> GetValidAssociationsForSelectList() { 
    var associations = ...; 
    return associations.Select(a => new ListItem(item.AssociationKey, item.LegalName)); 
}