Visual Basic.NET - ComboBox en datagrid (como obetener el valor?)

 
Vista:

ComboBox en datagrid (como obetener el valor?)

Publicado por Sebastián Carrá (1 intervención) el 10/03/2006 21:11:04
Tengo dentro de un datagrid un combobox. Este datagrid lo paso a un dataset para ser usado por un crystal reports.
Mi problema es que todos los campos pasan bien, los de texto, checkbox, etc.
Pero los campos que tienen combobox no puedo hacerlos funcionar.
Lo que me toma es el indice del combobox y este fue cargado desde una tabla de sql y no se como puedo recuperarlo, les paso el código a ver si alguien me da una manito.

ds = New DSReports
Dim tbStyle As DataGridTableStyle
tbStyle = Grid.TableStyles(0)

Dim dataMember As String
dataMember = Grid.DataMember

Dim dataSource As DataSet
dataSource = Grid.DataSource

Dim column As DataGridColumnStyle
Dim nI As Integer

Dim drow As DataRow
For Each drow In dataSource.Tables(dataMember).Rows

Dim drowNew As DataRow
drowNew = ds.Tables("Datos").NewRow

nI = 1
For Each column In tbStyle.GridColumnStyles

Select Case column.GetType.Name.ToString

Case "DataGridTextBoxColumn"
drowNew.Item("Campo" + nI.ToString) = drow.Item(column.MappingName)
nI += 1
Case "DataGridTimePickerColumn"
drowNew.Item("Campo" + nI.ToString) = CDate(drow.Item(column.MappingName)).ToShortDateString.ToString
nI += 1
Case "MyDataGridBoolColumn"
If (Convert.ToString(drow.Item(column.MappingName)) = True) Then
drowNew.Item("Campo" + nI.ToString) = "X"
nI += 1
Else
drowNew.Item("Campo" + nI.ToString) = " "
nI += 1
End If

' en este case tengo el problema el codigo
' que esta adentro son pruebas ya que no se que hacer

Case "DataGridComboBoxColumn"

' el drow.Item(column.MappingName) me devuelve el indice del combo box
Dim codCombo = drow.Item(column.MappingName)

Dim cbxdgr As UsersControls.DataGridComboBoxColumn = column

Dim arrDrow() As DataRow = dataSource.Tables("ConsultaTiposIva").Select(column.MappingName + "='" + codCombo + "'")

If (arrDrow.Length > 0) Then
drowNew.Item("Campo" + nI.ToString) = arrDrow(0).Item("IvaDescrip")
nI += 1
End If

Case "DataGridButtonColumn"
drowNew.Item("Campo" + nI.ToString) = " "

End Select

Next

Saludos Seb@
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder