заполнение столбца комбинированного списка datagridview с помощью subsonic & vb.net - PullRequest
0 голосов
/ 14 мая 2009

Как видно из названия, я пытаюсь заполнить столбец поля со списком в представлении данных.

Вот что у меня есть:

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

Какие-нибудь предложения относительно того, что мне не хватает?

Спасибо Тони W

Ответы [ 2 ]

0 голосов
/ 11 июня 2009

Сначала я предлагаю вам связать вашу коллекцию с BindingSource, а затем добавить BindingSource в DataGridView (чтобы вы знали положение)

Но связывание ComboBoxCell должно быть довольно простым.

Допустим, у вас есть DataTable tblCurrency, содержащая два столбца Id и Name. Вы должны привязать это к вашей колонке (я полагаю, колонка 0 это ваш DataGridViewColumn)

     dgvcboPart.Columns(0).DataSource = tblCurrency
     dgvcboPart.Columns(0).ValueMember = "Id"
     dgvcboPart.Columns(0).DisplayMember = "Name"

Затем вы можете установить для свойства DataPropertyName свойство в вашем источнике данных.

     dgvcboPart.Columns(0).DataPropertyName = "Currency_Id"

Будьте осторожны, tblCurrency.Id и Currency_Id должны быть одного типа (Int32 и UInt32 не работают). И вы получите неприятный MessageBox с полным StackTrace, если Currency_Id имеет значение, которое отсутствует в tblCurrency (поэтому обработать событие DataError)

0 голосов
/ 14 мая 2009
dgvcboPart.DataSource = lc
dgvcboPart.DataBind()

должен вызвать метод привязки данных, чтобы волшебство произошло!

...