Databinding en UserControl.

21/06/2005 - 16:00 por Sendo.net | Informe spam
Tengo un problema con los databindings.
En un formulari tengo dos usercontrols que tienen que mostrar informació de
una misma tabla, pero información diferente. Pero cuando uno cambia la
información el otro tambien. ¿Como puedo lograr que los dos actuen
independientemente uno del otro? Y cuando intento hacer un Addnew aún es peor.

Aqui les paso un poco mas detallado:
Tengo un UserControl (UsrPersonal) donde hay unos textbox que se enlazan
(Databinding) con un Dataview, y una funcion que selecciona el registro que
quiero ver (POS).


->Codigo UserControl
Private WithEvents cm As CurrencyManager
Public Sub conectar(ByVal Origen As DataView)
cm = Me.BindingContext(Origen)

Me.TextBox1.DataBindings.Add(New Binding("Text", Origen, "ID"))
Me.TextBox2.DataBindings.Add(New Binding("Text", Origen, "Nom"))
Me.TextBox3.DataBindings.Add(New Binding("Text", Origen, "Seudonim"))
End Sub
Public Sub Pos(ByVal pos As Integer)
cm.Position = pos
End Sub


En un Formulario he insertado dos controles UsrPersonal, y les he pasado un
el mismo origen de datos.
El problema es que cuando quiero mostrar información diferente en cada
Control, cuando cambio la posición de uno se me modifica la del otro.

-> Codigo Formulario
Me.SqlDataAdapter1.Fill(ds)

Dim dv As DataView = ds.Tables("Personal").DefaultView
Me.UsrPersonal1.conectar(dv)
Me.UsrPersonal2.conectar(dv)


Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
Me.UsrPersonal1.Pos(1)
Me.UsrPersonal2.Pos(2)
end sub

Preguntas similare

Leer las respuestas

#1 Diego Cofré
21/06/2005 - 16:34 | Informe spam
Tendrias que instanciar dos dataviews distintos y dos CurrencyManager, uno
para cada dataview. Ahi vas a poder manejar dos origenes de datos,
independientes, aunque obtengan los datos de la misma base.

Saludos
Diego
Respuesta Responder a este mensaje
#2 Sendo.net
21/06/2005 - 16:41 | Informe spam
Hola Diego,

He instanciado dos dataview diferents, pero los CurrencyManager en principio
ya son diferentes ya que se encuentran dentro del usercontrol.

El codigo que he cambiado es el siguiente:

Me.SqlDataAdapter1.Fill(ds)
Dim dv As DataView = ds.Tables("Personal").DefaultView
Me.UsrPersonal1.conectar(dv)
Dim dv1 As DataView = ds.Tables("Personal").DefaultView
Me.UsrPersonal2.conectar(dv1)

Pero el resultado es el mismo.


"Diego Cofré" escribió:

Tendrias que instanciar dos dataviews distintos y dos CurrencyManager, uno
para cada dataview. Ahi vas a poder manejar dos origenes de datos,
independientes, aunque obtengan los datos de la misma base.

Saludos
Diego



Respuesta Responder a este mensaje
#3 Diego Cofré
21/06/2005 - 17:21 | Informe spam
Me parece que el problema es que a la larga, aunque los dataviews sean
distintos, quedan ligados al mismo origen de datos (el mismo DataSet), con
lo cual, cuando instancias el currencymanager en el control, el origen al
que quedan bindeados es el mismo.
Proba haciendo dos datasets distintos, con sus dos dataadapter para
llenarlos.

Saludos
Diego
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida