Problema con tabla leyendo dos gridviews
Publicado por Sebastian (1 intervención) el 15/06/2007 18:03:28
Hola,
Tengo un gran problema, espero que me puedan ayudar.
Tengo 2 gridview que me traen dos consultas diferentes de acuerdo a un mismo parametro de un dropdownlist con autopostback. Hasta aqui todo perfecto los gridview funcionan y traen los datos cada que cambia el dropdownlist.
El problema viene aqui, tengo una tabla que me toma los datos de ambos gridview y los mezcla (sacando pocentajes y promedios). La tabla funciona bien pero para un registro antes, es decir cuando selecciono un criterio en el dropdown, me trae los datos bien de los gridview pero la tabla me trae los datos del criterio anterior seleccionado en el dropdownlist.
Si por ejemplo primero selecciono el criterio1 en el dropdownlist, los gridview funcionan para el criterio1 y no me muestra nada la tabla. A la segunda vez que cambio de criterio en el dropdownlist, los gridview me traen los datos que pertenecen al criterio2 pero la tabla me trae los datos del criterio1, siempre un dato antes. A que se debe esto?
El codigo para la tabla es:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
If Page.IsPostBack Then
TextBox1.Text = Calendar1.SelectedDate.Month
TextBox2.Text = Calendar2.SelectedDate.Month
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim l As Integer
Dim flag As Integer
Dim tam1 As Integer
Dim tam2 As Integer
Dim wich As Integer
Dim cmto As Double
Dim pos As String
flag = 0
wich = 0
tam1 = GridView1.Rows.Count
tam2 = GridView2.Rows.Count
Table4.Rows(0).Cells(0).Text = "CANAL"
Table4.Rows(0).Cells(1).Text = "VENTAS"
Table4.Rows(0).Cells(2).Text = "PRESUPUESTO"
Table4.Rows(0).Cells(3).Text = "A LA FECHA"
Table4.Rows(0).Cells(4).Text = "CUMPLIMIENTO"
For i = 0 To tam1 - 1
For j = 0 To tam2 - 1
If GridView1.Rows(i).Cells(0).Text = GridView2.Rows(j).Cells(0).Text Then
flag = 1
wich = j
End If
Table4.Rows(i + 1).Cells(0).Text = GridView1.Rows(i).Cells(0).Text
Table4.Rows(i + 1).Cells(1).Text = GridView1.Rows(i).Cells(1).Text
Next
If flag = 1 Then
Table4.Rows(i + 1).Cells(2).Text = GridView2.Rows(wich).Cells(1).Text
End If
If flag = 0 Then
Table4.Rows(i + 1).Cells(2).Text = 0
End If
flag = 0
Next
For k = 0 To tam1 - 1
Table4.Rows(k + 1).Cells(3).Text = (Table4.Rows(k + 1).Cells(2).Text / 31) * 14
Next
For l = 0 To tam1 - 1
If Table4.Rows(l + 1).Cells(2).Text <> 0 Then
cmto = (GridView1.Rows(l).Cells(1).Text / Table4.Rows(l + 1).Cells(3).Text) * 100
pos = InStr(cmto.ToString, ".")
Table4.Rows(l + 1).Cells(4).Text = Left(cmto.ToString, pos - 1)
cmto = 0
pos = 0
Else
Table4.Rows(l + 1).Cells(4).Text = 0
End If
Next
End If
End Sub
Vale decir que se ejecuta cada que la pagina hace un postback
gracias
Tengo un gran problema, espero que me puedan ayudar.
Tengo 2 gridview que me traen dos consultas diferentes de acuerdo a un mismo parametro de un dropdownlist con autopostback. Hasta aqui todo perfecto los gridview funcionan y traen los datos cada que cambia el dropdownlist.
El problema viene aqui, tengo una tabla que me toma los datos de ambos gridview y los mezcla (sacando pocentajes y promedios). La tabla funciona bien pero para un registro antes, es decir cuando selecciono un criterio en el dropdown, me trae los datos bien de los gridview pero la tabla me trae los datos del criterio anterior seleccionado en el dropdownlist.
Si por ejemplo primero selecciono el criterio1 en el dropdownlist, los gridview funcionan para el criterio1 y no me muestra nada la tabla. A la segunda vez que cambio de criterio en el dropdownlist, los gridview me traen los datos que pertenecen al criterio2 pero la tabla me trae los datos del criterio1, siempre un dato antes. A que se debe esto?
El codigo para la tabla es:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
If Page.IsPostBack Then
TextBox1.Text = Calendar1.SelectedDate.Month
TextBox2.Text = Calendar2.SelectedDate.Month
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim l As Integer
Dim flag As Integer
Dim tam1 As Integer
Dim tam2 As Integer
Dim wich As Integer
Dim cmto As Double
Dim pos As String
flag = 0
wich = 0
tam1 = GridView1.Rows.Count
tam2 = GridView2.Rows.Count
Table4.Rows(0).Cells(0).Text = "CANAL"
Table4.Rows(0).Cells(1).Text = "VENTAS"
Table4.Rows(0).Cells(2).Text = "PRESUPUESTO"
Table4.Rows(0).Cells(3).Text = "A LA FECHA"
Table4.Rows(0).Cells(4).Text = "CUMPLIMIENTO"
For i = 0 To tam1 - 1
For j = 0 To tam2 - 1
If GridView1.Rows(i).Cells(0).Text = GridView2.Rows(j).Cells(0).Text Then
flag = 1
wich = j
End If
Table4.Rows(i + 1).Cells(0).Text = GridView1.Rows(i).Cells(0).Text
Table4.Rows(i + 1).Cells(1).Text = GridView1.Rows(i).Cells(1).Text
Next
If flag = 1 Then
Table4.Rows(i + 1).Cells(2).Text = GridView2.Rows(wich).Cells(1).Text
End If
If flag = 0 Then
Table4.Rows(i + 1).Cells(2).Text = 0
End If
flag = 0
Next
For k = 0 To tam1 - 1
Table4.Rows(k + 1).Cells(3).Text = (Table4.Rows(k + 1).Cells(2).Text / 31) * 14
Next
For l = 0 To tam1 - 1
If Table4.Rows(l + 1).Cells(2).Text <> 0 Then
cmto = (GridView1.Rows(l).Cells(1).Text / Table4.Rows(l + 1).Cells(3).Text) * 100
pos = InStr(cmto.ToString, ".")
Table4.Rows(l + 1).Cells(4).Text = Left(cmto.ToString, pos - 1)
cmto = 0
pos = 0
Else
Table4.Rows(l + 1).Cells(4).Text = 0
End If
Next
End If
End Sub
Vale decir que se ejecuta cada que la pagina hace un postback
gracias
Valora esta pregunta


0