EMDI는 지금도 개발중

C# : 콤보박스 이름과 값 각각 넣는 방법 How to set Name and Value in ComboBox at C# 본문

언어/C#

C# : 콤보박스 이름과 값 각각 넣는 방법 How to set Name and Value in ComboBox at C#

EMDI 2019. 5. 17. 14:29

이번 글에서는 C#에서 자주 사용하는 콤보박스에 대한 내용입니다. 콤보박스는 DataTable에 나온 데이터를 이용해서 Name과 Value를 넣는 방법, List에 지정한 데이터를 가지고 넣는 방법 등 다양한 방법으로 넣을 수 있습니다.

 

1. DataTable에서 나온 데이터를 가지고 콤보박스 넣는 방법

DataTable _dtComboList = new DataTable();

if (!_dtComboList.Columns.Contains("MENU_TYPE_ID")) _dtComboList.Columns.Add("MENU_TYPE_ID"); 
if (!_dtComboList.Columns.Contains("MENU_TYPE_NM")) _dtComboList.Columns.Add("MENU_TYPE_NM"); 

for (var i = 0; i < dtResult.Rows.Count; i++) 
{ 
    DataRow dr = _dtComboList.NewRow(); 
    dr["MENU_TYPE_ID"] = dtResult.Rows[i]["MENU_TYPE_ID"]; 
    dr["MENU_TYPE_NM"] = dtResult.Rows[i]["MENU_TYPE_NM"]; 
    _dtComboList.Rows.Add(dr); 
} 

// 처음에는 모든 것을 다 세팅
MENU_TYPE_NM.DataSource = _dtComboList;
MENU_TYPE_NM.DisplayMember = "MENU_TYPE_NM"; 
MENU_TYPE_NM.ValueMember = "MENU_TYPE_ID"; 

우선 dtResult라는 DataTable에 데이터가 이미 있다는 가정하에 세팅을 해보겠습니다. ComboBox의 DataSource안에 넣을 DataTable을 별도로 만든 다음 dtResult에서 필요한 데이터만을 담습니다.

그 다음 MENU_TYPE_NM 이라는 콤보박스에 DataSource는 _dtComboList로 클라이언트 화면상에 보일 내용은 MENU_TYPE_NM이고 각각의 내용의 값은 MENU_TYPE_ID을 사용한다고 지정하는 것입니다.


2. List를 사용하여 ComboBox NAME과 Value 지정하기

public class infoType 
{ 
    public string Name { get; set; } 
    public string Value { get; set; } 
} 
 

private void initComboBox() 
{

    //Build a list 
    var dataSource = new List(); 
    dataSource.Add(new infoType() { Name = "아이디", Value = "I" }); 
    dataSource.Add(new infoType() { Name = "닉네임", Value = "N" }); 

    //Setup data binding 
    info_type.DataSource = dataSource; 
    info_type.DisplayMember = "Name"; 
    info_type.ValueMember = "Value"; 

    // make it readonly 
    info_type.DropDownStyle = ComboBoxStyle.DropDownList; 
    info_type.SelectedIndex = 0;

}

두번째는 DataTable이 아닌 이미 지정된 Name과 지정된 Value를 가지고 사용하는 방법입니다. dataSource라는 List 안에 고정된 값들을 추가합니다. 그 다음 info_type이라는 콤보박스에 dataSource를 넣고 클라이언트 화면상에 보일 내용은 Name, 실제 값은 Value로 지정해줍니다.

 

그럼 위의 사진과 같은 콤보박스가 만들어지는 것을 확인할 수 있습니다.

Comments