Foros del Web » Programando para Internet » ASPX (.net) »

Carga DOS veces un Datagrid

Estas en el tema de Carga DOS veces un Datagrid en el foro de ASPX (.net) en Foros del Web. Hola a todos, tengo el siguiente problema: Tengo una tabla (datagrid) para desplegar todos los registros contenidos en una mis tablas, ahora bien cuando quiero ...
  #1 (permalink)  
Antiguo 31/01/2008, 13:40
Avatar de CieloEterno  
Fecha de Ingreso: marzo-2006
Ubicación: México
Mensajes: 52
Antigüedad: 18 años, 1 mes
Puntos: 0
Exclamación Carga DOS veces un Datagrid

Hola a todos, tengo el siguiente problema:

Tengo una tabla (datagrid) para desplegar todos los registros contenidos en una mis tablas, ahora bien cuando quiero editar o agregar alguna línea más a los registros; se realiza bien el update o el insert correctamente.

El problema radica en que al momento de actualizar/insertar, se despliegan dos veces los registros:

Antes del update/insert/delete
- Lista de registros SIN cambios

Después del update/insert/delete
- Lista de registros SIN cambios
- Lista de registros CON cambios

Para que sólo aparezca la Lista de regitros CON cambios, tengo que salirme de la página y volver a entrar a ella.


Además, cuando entro a la página por primera vez; carga el datagrid bien, pero si se le doy F5 aparece, se dibuja dos veces; y si le doy 10 veces F5, pues se carga 10 veces el datagrid, y así sucesivamente

Les dejo mi código:

Llamo el sub
Código PHP:
            If Not IsPostBack Then
                
                
If 0 Then                    
                    llenar_partidas
()
                
End If

               
Más código....

           
End If 
Sub
Código PHP:
Private Sub llenar_partidas()
        
Dim lsLRsql As String
        
Try
            
LblSal.Text "0"
            
lsLRsql "select * from partidas where idpedido=" Npedido " order by idpartida asc"
            
Response.Write("<br>SQL<br>" lsLRsql)
            
ocdJL_Command.Dispose()
            
ocdJL_Command cn.putComand(lsLRsqlcLRcon)
                   
            
rsAcceso ocdJL_Command.ExecuteReader()
                        
            While 
rsAcceso.Read
                Dim dr 
As DataRow Cart.NewRow()

                
dr(0) = rsAcceso.Item("a")
                
dr(1) = rsAcceso.Item("b")
                
dr(2) = rsAcceso.Item("c")
                
dr(3) = rsAcceso.Item("d")
                
dr(4) = rsAcceso.Item("e")
                
dr(5) = rsAcceso.Item("f")
                
dr(6) = rsAcceso.Item("g")
                
dr(7) = rsAcceso.Item("h")
                
dr(8) = rsAcceso.Item("i")

                
LblSal.Text CDbl(LblSal.Text) + CDbl(Trim(rsAcceso.Item("importe")))
                
Response.Write("<br><font color=orange>-" dr(0) & "-" dr(3) & "-" dr(2) & "-" dr(1) & "-" dr(7) & "-</font>")
                
Cart.Rows.Add(dr)
            
End While

            
CartView = New DataView(Cart)
            
BindGrid()
           
        Catch 
ex As Exception
            Response
.Write(ex)
        
End Try
    
End Sub 
Sub Bindgrid()
Código PHP:
    Sub BindGrid()
        Try
            
MyDataGrid.DataSource Nothing
            MyDataGrid
.DataSource CartView
            MyDataGrid
.DataBind()
        Catch 
ex As Exception
            Response
.Write(ex)
        
End Try
    
End Sub 
Y aquí está mi datagrid
Código PHP:
         <asp:DataGrid ID="MyDataGrid" runat="server" BorderColor="Black" BorderWidth="1px" CellPadding="3" Font-Names="Verdana" Font-Size="8pt" HeaderStyle-BackColor="#aaaadd" OnEditCommand="MyDataGrid_Edit" OnCancelCommand="MyDataGrid_Cancel" OnUpdateCommand="MyDataGrid_update" AutoGenerateColumns="False" Width="750px" OnItemCommand="Grid_Command">
         <
Columns>
           <
asp:BoundColumn HeaderText="A" DataField="a"><HeaderStyle Width="100px" /></asp:BoundColumn>
           <
asp:BoundColumn HeaderText="B" DataField="b"><HeaderStyle Width="100px" /></asp:BoundColumn>
           <
asp:BoundColumn HeaderText="C" DataField="c"><HeaderStyle Width="100px" /></asp:BoundColumn>
           <
asp:BoundColumn HeaderText="D" DataField="d"><HeaderStyle Width="100px" /></asp:BoundColumn>
           <
asp:BoundColumn HeaderText="E" DataField="e"><HeaderStyle Width="100px" /></asp:BoundColumn>
           <
asp:BoundColumn HeaderText="F" DataField="f"><HeaderStyle Width="100px" /></asp:BoundColumn>
           <
asp:BoundColumn HeaderText="G" DataField="g"><HeaderStyle Width="100px" /></asp:BoundColumn>
           <
asp:BoundColumn HeaderText="H" DataField="h"><HeaderStyle Width="100px" /></asp:BoundColumn>
           <
asp:BoundColumn HeaderText="I" DataField="i"><HeaderStyle Width="220px" /></asp:BoundColumn>           
           <
asp:ButtonColumn  Text="Agregar" CommandName="Add" />
           <
asp:ButtonColumn  Text="Eliminar" CommandName="Delete" />           
           <
asp:EditCommandColumn UpdateText="Guardar"  CancelText="Cancelar" EditText="Editar">
            <
HeaderStyle Wrap="False"></HeaderStyle>
            <
ItemStyle Wrap="False"></ItemStyle>
           </
asp:EditCommandColumn>
         </
Columns>            
         <
HeaderStyle BackColor="#AAAADD" />
         </
asp:DataGrid

Si alguien sabe qué está pasando, donde esta mi error o de alguna propiedad que estoy pasando de largo, de verdad; ayudeeeeeeeeeeenmeeeeeeeeee
__________________
Aquel que no tiene nada por lo cual morir, no tiene nada por que vivir

Última edición por CieloEterno; 31/01/2008 a las 14:05 Razón: falto ingresar código
  #2 (permalink)  
Antiguo 31/01/2008, 14:18
Avatar de CieloEterno  
Fecha de Ingreso: marzo-2006
Ubicación: México
Mensajes: 52
Antigüedad: 18 años, 1 mes
Puntos: 0
De acuerdo Solucionado

No saben mi felicidad encontré la solución:

Es la línea con ******
Código PHP:
Private Sub llenar_partidas()
        
Dim lsLRsql As String
        
Try
            
LblSal.Text "0"
            
lsLRsql "select * from partidas where idpedido=" Npedido " order by idpartida asc"
            
Response.Write("<br>SQL<br>" lsLRsql)
            
ocdJL_Command.Dispose()
            
ocdJL_Command cn.putComand(lsLRsqlcLRcon)
                   
            
rsAcceso ocdJL_Command.ExecuteReader()

            ****** 
Cart.Clear() ******

            While 
rsAcceso.Read
                Dim dr 
As DataRow Cart.NewRow()

                
dr(0) = rsAcceso.Item("a")
                
dr(1) = rsAcceso.Item("b")
                
dr(2) = rsAcceso.Item("c")
                
dr(3) = rsAcceso.Item("d")
                
dr(4) = rsAcceso.Item("e")
                
dr(5) = rsAcceso.Item("f")
                
dr(6) = rsAcceso.Item("g")
                
dr(7) = rsAcceso.Item("h")
                
dr(8) = rsAcceso.Item("i")

                
LblSal.Text CDbl(LblSal.Text) + CDbl(Trim(rsAcceso.Item("importe")))
                
Response.Write("<br><font color=orange>-" dr(0) & "-" dr(3) & "-" dr(2) & "-" dr(1) & "-" dr(7) & "-</font>")
                
Cart.Rows.Add(dr)
            
End While

            
CartView = New DataView(Cart)
            
BindGrid()
           
        Catch 
ex As Exception
            Response
.Write(ex)
        
End Try
    
End Sub 
No tienen idea de cuanto busqué, pero si encontré la solución

En fin, parece que sólo yo revise mi pregunta y pues encontré la solución; pero ojalá les sirva en alguna ocasión, saludos¡¡¡
__________________
Aquel que no tiene nada por lo cual morir, no tiene nada por que vivir
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:17.