Visual Web Developer - Problema con tabla leyendo dos gridviews

 
Vista:

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
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