none
Cambiar ProposedValue en ColumnChanging, no queda reflejado en el control asociado RRS feed

  • Pregunta

  • Hola buenas.

    He creado un DataSet con una tabla y he arrastrado la tabla a un formulario (todo en VB.2010), de manera que tengo todos los campos de la tabla asociados a controles del mismo. En el formulario tengo lo típico que coloca el VB, un BindingSource, un BindingNavigator...

    Estoy intentando cambiar un valor de un campo en el evento ColumnChanging de la tabla, pero el cambio no se refleja en el formulario. Si cambio de registro y vuelvo al mismo registro, el cambio está hecho. ¿Cómo puedo refrescar el control asociado? He estado buscando el Google, pero no he encontrado nada...

    Os pego el manejador del evento:

    Private Sub authorsDataTable_ColumnChanging(ByVal sender As Object, ByVal e As System.Data.DataColumnChangeEventArgs) Handles Me.ColumnChanging

     

     

    Console.WriteLine("")

     

     

    Console.WriteLine("ColumnChanging " & e.ProposedValue)

     

     

    If e.Column.ColumnName = "au_lname" Then

     

     

    If e.ProposedValue = "PEPE" Then

    e.ProposedValue =

     

    "JUAN"

    e.Row.EndEdit()

     

     

    End If

     

     

    End If

     

     

     

    End Sub

     

    sábado, 29 de mayo de 2010 8:49

Todas las respuestas

  • hola

    como estas cargando el BindingSource?

    sino recuerdo mal despues de la actualziacion deberias recargar el control actualziando los datos con una nueva consulta a la db

    este link comenta algo de esto

    http://social.msdn.microsoft.com/Forums/en-US/vblanguage/thread/a428d79e-5d48-46ce-bbdb-0499c915aa04

    como veras vuelve a usar el tablaadapter para cargar el dataset que imagino usar en luego con el BindingSource

     

    tambien podrias probar con esto


    pero creo que ataca mas bien una actualziacion visual y no de datos

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    sábado, 29 de mayo de 2010 15:32
  • Hola Leandro.

    Gracias por responder...

    Todavía no he llegado a actualizar los datos. Símplemente estoy haciendo la comprobación del valor de una columna, y sustituirlo por otro en función de una cierta lógica. Es decir, todas las comprobaciones se hacen en memoria.

    El problema del ResetBindings es que la lógica la tengo dentro de la clase del DataTable que me ha creado el visual basic, no dentro del Form. En esta clase no tengo accesible el BindingSource.

    Vengo del Visual Basic 6.0, y esto antes lo hacía con ADO con el evento FieldChangeCompleted, pero ahora ando perdido. He buscado y rebuscado por Google y nada.

     

    Un saludo.

    sábado, 29 de mayo de 2010 16:20