MVC 產生 DropDownList 從DB產生資料來源

  • 2824
  • 0
  • MVC
  • 2019-06-26

透過Linq To Entity Framwork 從 DB裡面撈出資料,產生DrowpDownList

在Model這邊訂好資料來源

public SelectList Get_SeletList()
{
	SelectList li ;
	var query = (from de in db.TEST_TableA.AsQueryable()
				 where de.COLUMNA == "900"
				select new
				{
					ItemText = de.ORG_ID + " " + de.ORG_NAME,
					ItemValue = de.ORG_ID
				}).ToList();
	if (query != null)
	{
		li = new SelectList(query, dataValueField: "ItemValue", dataTextField: "ItemText");
		return li;
	}
    else{
	    return null;
    }
}

定義ViewModel

//ViewModel
public class TestViewModel
{
   // 預設要選取的值
   public String SeletedValue{get;set;}
   // 下拉式控制項內的資料
   public SelectList Test_ListItem { get; set; }
}

然後再Controller準備好要傳到View的資訊

TestViewModel model = new TestViewModel ();

//剛剛定義從DB裡面撈出來的資料
model.Test_ListItem = ap0011.Get_SeletList();
model.SeletedValue = "指定預設的值";

最後View的地方:

<div class="form-group">
	<label class="control-label col-md-2 " for="selTestID">測試下拉式選單FromDB:</label>
	<div class="col-md-3 ">
        @*@Html.DropDownListFor 第一個參數接預設要選擇的資料,第二個參數接下拉式選單內的值*@        
		@Html.DropDownListFor(c => c.SelectValue, (SelectList)Model.Test_ListItem, new { @class = "form-control", id = "selTestID", style = "" })
	</div>
</div>

以上。