How do I to export to Excel when I have pages with DataPager in my radgrid?

6 posts, 0 answers
  1. kronnos_indigo
    kronnos_indigo avatar
    61 posts
    Member since:
    Jul 2006

    Posted 17 Feb 2010 Link to this post

    Good morning.

    In RadGrid ASP.NET, I do easy this stept for export to Excel all data of it.

    I have one radgrid in my silverlight page with DataPager (50 rows for page).
    How do I to export all data of grid to Excel if for example it has 140 rows in 3 pages (each one of 50 rows)?
    Actually, I export to Excel only the data in active page of grid.

    Next attach the Vb.Net code:
    #Region "Métodos Grilla Items" 
      Private Sub PaginadorGrillaItems(ByVal coleccionDatos As Object) 
        Dim m, d As String, p As Integer 
        m = "PaginadorGrillaItems)-" : d = "Entra" : p = 0 
        Try 
          'MessageBox.Show(o & vbCrLf & m & p & d, "", MessageBoxButton.OK) 
          Dim qcview As New QueryableCollectionView(coleccionDatos) 
          qcview.PageSize = 200 
          dpgvFacturaItems.Source = qcview 
          gvFacturaItems.ItemsSource = qcview 
        Catch ex As Exception 
          MessageBox.Show("Revisar: " & o & vbCrLf & m & p & vbCrLf & ex.Message) 
        End Try 
        d = ") Sale " 
        ' p = 999 : MessageBox.Show(o & vbCrLf & m & p & d) 
      End Sub 
     
      Private Sub CargarDatosGrillaItems() 
        Dim m, d As String, p As Integer 
        m = "CargarDatosGrillaItems)-" : d = "Entra" : p = 0 
        Try 
          'MessageBox.Show(o & vbCrLf & m & p & d, "", MessageBoxButton.OK) 
          gvFacturaItems.ItemsSource = "" 
          lbCargandogvFacturaItems.Visibility = Windows.Visibility.Visible 
          p = 50 : wsQryFacInvCli.CargarDatosDetalleFacturaAsync(punto, codTercero, numpro) 
        Catch ex As Exception 
          MessageBox.Show("Revisar: " & o & vbCrLf & m & p & vbCrLf & ex.Message) 
        End Try 
        d = ") Sale " 
        ' p = 999 : MessageBox.Show(o & vbCrLf & m & p & d) 
      End Sub 
     
      Private Sub AsignarOrigenDatosGrillaItems(ByVal sender As Object, ByVal e As wsSvlFactInvCliRef.CargarDatosDetalleFacturaCompletedEventArgs) 
        Dim m, d As String, p As Integer 
        m = "AsignarOrigenDatosGrillaItems)-" : d = "Entra" : p = 0 
     
        Try 
          'MessageBox.Show(o & vbCrLf & m & p & d, "", MessageBoxButton.OK) 
          p = 10 
          If Not IsNothing(e.Result) Then 
            If e.Result.Length > 0 Then 
              p = 100 : PaginadorGrillaItems(e.Result) 
              p = 120 : gvFacturaItems.SelectedItems.Add(gvFacturaItems.Items(0)) 
            End If 
            lbCargandogvFacturaItems.Visibility = Windows.Visibility.Collapsed 
          Else 
            gvFacturaItems.ItemsSource = "" 
            lbCargandogvFacturaItems.Visibility = Windows.Visibility.Collapsed 
          End If 
        Catch ex As Exception 
          MessageBox.Show("Revisar: " & o & vbCrLf & m & p & vbCrLf & ex.Message) 
        End Try 
        d = ") Sale " 
        ' p = 999 : MessageBox.Show(o & vbCrLf & m & p & d) 
      End Sub 
     
      Private Sub gvFacturaItems_Exporting(ByVal sender As Object, ByVal e As Telerik.Windows.Controls.GridViewExportEventArgs) Handles gvFacturaItems.Exporting 
        Dim m, d As String, p As Integer 
        m = "gvFacturaItems_Exporting)-" : d = "Entra" : p = 0 
     
        Try 
          'MessageBox.Show(o & vbCrLf & m & p & d, "", MessageBoxButton.OK) 
     
          If (e.Element = ExportElement.HeaderRow) Then 
            e.Height = 30 
            e.FontSize = 10 
            e.FontFamily = New FontFamily("Verdana") 
          ElseIf (e.Element = ExportElement.Row) Then 
            e.Height = 25 
            e.FontSize = 9 
            e.FontFamily = New FontFamily("Verdana") 
          End If 
        Catch ex As Exception 
          MessageBox.Show("Revisar: " & o & vbCrLf & m & p & vbCrLf & ex.Message) 
        End Try 
        d = ") Sale " 
        'p = 999 : MessageBox.Show(o & vbCrLf & m & p & d) 
      End Sub 
     
      Private Sub btExportarExcelClick(ByVal sender As Object, ByVal e As System.Windows.RoutedEventArgs) Handles ibExportarExcel.KeyUp 
        Dim m, d As String, p As Integer 
        m = "btExportarExcelClick)-" : d = "Entra" : p = 0 
        Dim extension, contenido As String 
        Try 
          'MessageBox.Show(o & vbCrLf & m & p & d, "", MessageBoxButton.OK) 
          extension = "xls" 
          contenido = "" 
          If numEjecucion = 1 Then 
            p = 20 : Dim guardarArchivo As New SaveFileDialog() 
            p = 30 : guardarArchivo.Filter = "Excel files (*." & extension & ")|*." & extension & "|All files (*.*)|*.*" 
            p = 40 : guardarArchivo.DefaultExt = extension 
            p = 50 : guardarArchivo.FilterIndex = 1 
     
            If (guardarArchivo.ShowDialog() = True) Then 
              Using arcEx As Stream = guardarArchivo.OpenFile() 
                p = 60 : contenido = gvFacturaItems.ToHtml 
     
                p = 70 : Dim bytes() As Byte = Encoding.UTF8.GetBytes(contenido) 
                p = 80 : arcEx.Write(bytes, 0, bytes.Length) 
     
                arcEx.Close() 
              End Using 
            End If 
            numEjecucion = 2 
          Else 
            numEjecucion = 1 
          End If 
        Catch ex As Exception 
          MessageBox.Show("Revisar: " & o & vbCrLf & m & p & vbCrLf & ex.Message) 
        End Try 
        d = ") Sale " 
        ' p = 999 : MessageBox.Show(o & vbCrLf & m & p & d) 
      End Sub 
     
    #End Region 

    and XAML code:
    <telerikGridView:RadGridView Grid.Row="1" x:Name="gvFacturaItems" Margin="5,5,0,0" AutoGenerateColumns="False" SelectionMode="Single"  
                                Height="660" Width="1200"  ShowColumnFooters="True" CanUserFreezeColumns="False" ScrollMode="Deferred" HorizontalAlignment="Left" 
                                DataLoadMode="Asynchronous"  EnableRowVirtualization="True" EnableColumnVirtualization="True" Exporting="gvFacturaItems_Exporting"  
                                ScrollViewer.HorizontalScrollBarVisibility="Visible" ScrollViewer.VerticalScrollBarVisibility="Visible" > 
                            <telerikGridView:RadGridView.Columns> 
                                    <telerikGridView:GridViewDataColumn x:Name="colnumpro" Header="# fact" DataMemberBinding="{Binding numpro}" IsFilterable="False"  
                                            Width="60" TextAlignment="Right"/>                       
                                    <telerikGridView:GridViewDataColumn x:Name="colV" Header="V" DataMemberBinding="{Binding v}" IsFilterable="False" Width="20" TextAlignment="Center"/>                        
                                <telerikGridView:GridViewDataColumn x:Name="colLocalizacion" Header="Localización" DataMemberBinding="{Binding Localizacion}" IsFilterable="False"/>                         
                                    <telerikGridView:GridViewDataColumn x:Name="colDireccionItem" Header="Localización" DataMemberBinding="{Binding direccionItem}" IsFilterable="False"/>                       
                                <telerikGridView:GridViewDataColumn x:Name="coldescripcion" Header="Descripción" DataMemberBinding="{Binding descripcion}" IsFilterable="False"/>    
                                    <telerikGridView:GridViewDataColumn x:Name="colCiudad" Header="Ciudad" DataMemberBinding="{Binding ciudad}" IsVisible="False"/>                      
                                    <telerikGridView:GridViewDataColumn x:Name="colnombreCiudad" Header="Ciudad" DataMemberBinding="{Binding nombreCiudad}" Width="70"/>                         
                                <telerikGridView:GridViewDataColumn x:Name="colidBien" Header="idBien" DataMemberBinding="{Binding idBien}" IsVisible="False"/>                          
                                <telerikGridView:GridViewDataColumn x:Name="colcodBienIdAnt" Header="Cód Bien." DataMemberBinding="{Binding codBienIdAnt}"/>                         
                                <telerikGridView:GridViewDataColumn x:Name="colHCV_EntCli" Header="OI" DataMemberBinding="{Binding HCV_EntCli}"/>                            
                                <telerikGridView:GridViewDataColumn x:Name="colFecha" Header="F.Inicia" DataMemberBinding="{Binding fchIni}" DataFormatString="{}{0:ddMMMyyyy}" 
                                    Width="70" IsFilterable="False"/>                            
                                <telerikGridView:GridViewDataColumn x:Name="colFechaVence" Header="F.Vence." DataMemberBinding="{Binding fchVence}" DataFormatString="{}{0:ddMMMyyyy}" 
                                    Width="70" IsFilterable="False"/>                                                    
                            <telerikGridView:GridViewDataColumn x:Name="colDiasEntreCuotas" Header="Días" DataMemberBinding="{Binding diasEntreCuotas}"  IsFilterable="False"/>                          
                            <telerikGridView:GridViewDataColumn x:Name="colValorCr" Header="$Valor" DataMemberBinding="{Binding ValorCR}"  DataFormatString="{}{0:C}"  IsFilterable="False"/>                            
                            <telerikGridView:GridViewDataColumn x:Name="colCentroGestionCli" Header="Centro Gestión" DataMemberBinding="{Binding CentroGestionCliente}" IsVisible="True"/>                           
                            <telerikGridView:GridViewDataColumn x:Name="colNotas" Header="Justificación" DataMemberBinding="{Binding Notas}" IsVisible="True"/>                          
                            </telerikGridView:RadGridView.Columns> 
                    </telerikGridView:RadGridView>    
                    <dataInput:Label x:Name="lbCargandogvFacturaItems" Grid.Row="1" Content="Cargando Datos, por favor espere." Margin="15,50,0,0"  
                            FontFamily="Verdana" FontSize="15" Foreground="Black" Visibility="Collapsed" /> 
                    <data:DataPager x:Name="dpgvFacturaItems" Grid.Row="2" Source="{Binding ItemsSource, ElementName=gvFacturaItems}" IsTotalItemCountFixed="True" Margin="5,5,10,10"  
                            DisplayMode="FirstLastPreviousNextNumeric" FontFamily="Verdana" FontSize="9" Foreground="Black" Width="1200"  
                            HorizontalAlignment="Left" VerticalAlignment="Top"/> 

    Thanks by any help for that.


    Juan Pablo Díaz
    Bogotá Colombia
  2. Vlad
    Admin
    Vlad avatar
    11100 posts

    Posted 17 Feb 2010 Link to this post

    Hello kronnos_indigo,

    If you remove the PageSize declaration of the pager on export you will get all data in the exported document.

    Best wishes,
    Vlad
    the Telerik team

    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items.
  3. DevCraft banner
  4. kronnos_indigo
    kronnos_indigo avatar
    61 posts
    Member since:
    Jul 2006

    Posted 17 Feb 2010 Link to this post

    Good Morning Vlad

    Thanks by your answer, but How I do it to remove the PageSize declaration of the pager after the grid are loaded?
    In attach Vb.Net code, I have a btExportarExcelClick method for do that,
    do I must again call the load of data Private Sub CargarDatosGrillaItems() method?

    Thank by your help


    Juan Pablo Díaz.
  5. kronnos_indigo
    kronnos_indigo avatar
    61 posts
    Member since:
    Jul 2006

    Posted 17 Feb 2010 Link to this post

    Thank Dval.....


    I do the correct export to Excel...
    I try your idea and it work,,,


    Thanks..


    Good bye

    Juan Pablo Díaz.
    Bogotá - Colombia
  6. lina fetisova
    lina fetisova avatar
    110 posts
    Member since:
    Apr 2010

    Posted 11 Aug 2010 Link to this post

    If you remove the PageSize declaration of the pager on export you will get all data in the exported document.

    Vlad please can you tell me in more details how to do it?
  7. lina fetisova
    lina fetisova avatar
    110 posts
    Member since:
    Apr 2010

    Posted 11 Aug 2010 Link to this post

    smth like this:

    dataPager.PageSize = 1000000;
    ExportHelper.ExportToXls(ClisentsListGrid);
    dataPager.PageSize = 50;


    ?:)
Back to Top
DevCraft banner