subsonic & vb.net으로 datagridview combobox 열을 채우는 것
-
21-08-2019 - |
문제
제목이 말했듯이, 나는 DataGridView에서 콤보 박스 열을 채우려고합니다.
지금까지 내가 가지고있는 것은 다음과 같습니다.
Dim lc As System.Web.UI.WebControls.ListItemCollection = _
DataAccess.Part.GetListItems()
dgvcboPart.DataSource = lc
' This is a standalone combo box and it works ok
cboTest.DataSource = lc
내가 놓친 것이 무엇인지에 대한 제안이 있습니까?
감사합니다 Tony W.
해결책
먼저 컬렉션을 BindingSource에 바인딩 한 다음 BindingSource를 DatagridView에 추가하는 것이 좋습니다 (따라서 위치를 알고 있습니다).
그러나 comboboxcell의 결합은 거의 간단해야합니다.
두 개의 열 ID와 이름이 포함 된 데이터 가능한 tblcurrency가 있다고 가정 해 봅시다. 당신은 이것을 당신의 열에 바인딩해야합니다 (나는 당신의 datagridViewColumn의 열 0 ist라고 가정합니다).
dgvcboPart.Columns(0).DataSource = tblCurrency
dgvcboPart.Columns(0).ValueMember = "Id"
dgvcboPart.Columns(0).DisplayMember = "Name"
그런 다음 DataPropertyName을 데이터 소스의 속성으로 설정할 수 있습니다.
dgvcboPart.Columns(0).DataPropertyName = "Currency_Id"
Carful, tblcurrency.id 및 currency_id는 동일한 유형이어야하며 (int32 및 uint32가 작동하지 않음) Currency_id가 tblcurrency에 있지 않은 값이 있으면 전체 스택 트레이스가있는 불쾌한 메시지 상자를 얻을 수 있습니다 (따라서 DataError를 처리해야합니다. 이벤트)
다른 팁
dgvcboPart.DataSource = lc
dgvcboPart.DataBind()
마술이 일어나기 위해 데이터베인트 방법을 호출해야합니다!
제휴하지 않습니다 StackOverflow