2011-04-08 40 views
9

Establecí combobox.datasource en un elemento de vista de datos (para que se vincule a una tabla), cuando obtengo el valor de retorno de combobox.selectedvalue. Error fue devuelto bcos es de tipo "system.data.datarowview"Combobox valor seleccionado return DataRowView

No sé qué frecuencia su valor de retorno como texto

El código:

If ldstList.Tables(0).Rows.Count <> 0 Then 
         With CbStatus 
          .DataSource = ldstList.Tables(0) 
          .DisplayMember = "CardStatus" 
          .ValueMember = "StatusID" 
         End With 
        End If 

If Integer.Parse(CbStatus.SelectedValue) > 0 Then 
    GridLoad(Integer.Parse(CbStatus.SelectedValue)) 
End If 

Respuesta

2

No sé por qué surge el problema. Pero he encontrado una solución:

If Integer.Parse(DirectCast(CbStatus.SelectedItem, DataRowView).Item("StatusID")) > 0 Then 
    GridLoad(Integer.Parse(DirectCast(CbStatus.SelectedItem, DataRowView).Item("StatusID"))) 
End If 

Gracias a los que respondieron, y por favor no publicar una explicación o una solución mejor si usted tiene uno.

2

Usted no está vinculante para DataView, usted se está vinculando al DataTable mismo. La propiedad DefaultView devuelve un DataView puede utilizar:

CbStatus.DataSource = ldstList.Tables(0).DefaultView 
1

En el cuadro combinado o propiedades desplegables van a las DataBindings propiedad ... seleccionar avanzaron ... seleccione texto o valor o selectedItem seleccionan en función de la propiedad que desea ajustar y luego haga clic en la lista desplegablevinculante en la esquina superior derecha de la misma pantalla, seleccione el nombre de la columna que desea mostrar y luego seleccione el formato de los datos en el tipo de formato listbox (numérico, moneda, fecha y hora, etc.) y luego haga clic en DE ACUERDO. Esto es suponiendo que usted ha configurado su miembro de y pantalla miembro de valor propiedades en el cuadro combinado o desplegable y esto también es suponiendo que no son vinculantes a través de código sino a través de la propiedad de origen de datos de su control (desplegable/cuadro combinado)

26

Independientemente de otros problemas o soluciones, por favor asegúrese de configurar las propiedades del cuadro combinado en el orden correcto:

.DisplayMember = ...; 
.ValueMember = ...; 
.DataSource = ....; // Notice how this one is last? 

al establecer la propiedad DataSource primera dará lugar a problemas "system.data.datarowview".

+0

Gracias, acabas de salvar mi día. Nunca supe que el orden importaba tanto. – Bibhu

+2

Tuve este problema y descubrí que había configurado 'DataSource' antes que los otros dos en algunas situaciones. Configurar el 'DataSource' last lo solucionó por mí. –

+0

Gran respuesta aquí. Justo en el dinero. Estaba luchando con algunos cuadros combinados que funcionaban bien y otros que simplemente no funcionarían, hasta esto. También agregaría que no debería adjuntar manejadores de eventos ValueChanged hasta después de todo esto, de lo contrario recibirá un golpe cuando configure el ValueMember, y el valor será nulo ya que aún no ha configurado DataSource. – AngCaruso

Cuestiones relacionadas