DropDownList 란?
우리가 흔히 알고 있는 HTML 태그 중, <select>태그를 ASP.NET 언어에서 개발자들의 퍼포먼스를 향상시키 위해 사용되고 있는 사용자 도구를 뜻합니다.
아래는 우리가 알고 있는 <select> 태그의 예시.
1
2
3
4
5
|
<select id="category">
<option value="0">0번</option>
<option value="1">1번</option>
<option value="2">2번</option>
</select>
|
cs |
ASP.NET과 ASP.NET MVC에서 DB에서 가져온 데이터를 DropDownList에 어떻게 DataBind하는지 비교해봅니다.
ASP.NET WebForm
DB에서 데이터를 추출 후, 간단한 방식으로 DataBind를 할 수 있다.
1
2
3
4
5
6
7
8
|
// .aspx File
<asp:DropDownList ID="ddlCategory" runat="server" DataTextField="Title" DataValueField="Index">
</asp:DropDownList>
// .aspx.cs File
ddlCategory.DataSource = DB 데이터;
ddlCategory.DataBind();
|
cs |
cs 파일에서 DB 데이터를 조회한 후, DataSource에 넣으면 된다.
그리고 aspx 파일에서 DataTextField, DataValueField 값을 DB 데이터 속성값으로 설정해주면 끝이다. 랜더링 되면 우리가 알고 있는 HTML 태그인 <select> 로 변경된 것을 알 수 있다.
ASP.NET MVC
WebForm에서 익숙하게 사용하고 있던, 도구 상자가 없어졌다. 익숙하게 사용하던 것이 사라지니 멘붕이...
1
2
3
4
5
6
7
8
9
10
11
|
// Model
public List<SelectListItem> Category { get; set; }
public string CategorySelectValue { get; set; }
// Control
var model = new RegisterApplicationModel();
model.Category = DB 데이터;
model.CategorySelectValue = 선택될 아이템 값;
// View
@Html.DropDownListFor(m => m.CategorySelectValue, new SelectList(Model.Category, "Value", "Text"))
|
cs |
1. Model
- 속성들을 만들어야 한다.
- DB 데이터를 저장해둘 Category
- Category 중, 선택으로 지정할 CategorySelectValue
2. Control
- 위에서 생성한 Model 클래스를 객체로 인스턴스화해 준다.
- Model 객체의 속성에 해당 값 셋팅
3. View
- HTML TagHelper인, Html.DropDownListFor를 이용
- 1번째 인자, DropDownList에 선택할 값을 지정(HTML 랜더링된다면 id, name 값이 해당 CategorySelectValue 로 지정)
- 2번째 인자, DropDownList에 채울 아이템 설정(SelectList 객체를 이용, 아이템/Value/Text 순서대로 셋팅)
'개발 > ASP.NET MVC' 카테고리의 다른 글
[ASP.NET MVC] View() / RedirectToAction() 무엇이 다른가 살펴보자. (8) | 2019.10.30 |
---|