2012-04-19 18 views
1

ドロップダウンリストのいくつかを除外して、アクティブなアイテムのみを表示しようとしています。しかし同時に、すべてのドロップダウンリストが選択を必要とするわけではないので、最初のデフォルトオプションとして空のリスト項目を追加したい。空のオプションをドロップダウンリストに追加する方法

これは、私がアクティブなアイテムを表示しているが、デフォルトで空のリストアイテムの機能を追加する方法がわからないコードです。

IOrderedQueryable<VisitType> visitTypes = 
    _visitTypeRepository.FindAll().OrderBy(a => a.Description); 

viewModel.VisitTypes = visitTypes 
    .Where(a=>a.IsActive ?? false) 
    .ToSelectList("VisitTypeId", "Description", viewModel.VisitTypeId.ToString()); 

これは私のVisitTypeコードです:

[MetadataType(typeof(VisitTypeMetadata))] 
[ScaffoldTable(true)] 
[LocalizedDisplayName("EntityNamePlural", NameResourceType = typeof(Resources.Entities.VisitType))] 
[DisplayColumn("Description", "Description", false)] 
public partial class VisitType 
{ 

    public static VisitType All = new VisitType() { Description = "All", VisitTypeId = 0 }; 

    public string ValueDescription 
    { 
     get { return this.VisitTypeId.ToString() + "|" + Description; } 
    } 


    public class VisitTypeMetadata 
    { 
     [ColumnOrder(0)] 
     [ScaffoldColumn(false)] 
     [Filter(Enabled = false)] 
     [DefaultBoolean(Checked = true)] 
     [DisplayName("Active")] 
     public object IsActive { get; set; } 

     [ColumnOrder((1))] 
     public object Description { get; set; } 

     [ScaffoldColumn(false)] 
     public object VisitActivityEntries { get; set; } 
    } 
} 

任意のヘルプやアイデアは素晴らしいものです。ありがとう!

+0

「VisitType」コードも含めてください。 –

+0

@SteveDannerにVisitTypeコードが追加されました。感謝 – Masriyah

答えて

2

この質問への答えをチェックし、それはかなりあなたがここに

Adding a default SelectListItem

return new[] { new SelectListItem { Text = "", Value = "" } }.Concat(
     visitTypes 
.Where(a=>a.IsActive ?? false) 
.ToSelectList("VisitTypeId", "Description", viewModel.VisitTypeId.ToString())); 
+0

情報とリンクありがとう。私はこれが非常に便利だと確信していますが、私はビューモデルの項目を表示しているので、このコードは私のコードの残りの部分と統合するために私の最後にもう少し作業が必要です。私は、既に持っているコードに単純な変更があることを望んでいました。 – Masriyah

+0

私が作った編集を試してみてください、私は単純に彼らの答えをコピーしました。私はあなたのコードで上記のコードで動作するように修正しました –

+0

もう一度私を助けてくれてありがとう:)私はそれが働いていますが、returnの代わりに私はviewModel .VisitTypes = new [] ..... – Masriyah

0

私はSelectedIndexを= -1を使用している探しているまさに重複と回答です。過去に良好な結果を得ました。

関連する問題