RadGrid export to excel return Index was out of range

3 posts, 0 answers
  1. Estudios-Electricos
    Estudios-Electricos avatar
    9 posts
    Member since:
    Dec 2014

    Posted 16 Dec 2014 Link to this post

    I have the following scenario
    - a group of filter , and a Button "Consultar". This button fill the radgrid. (that's working Ok).
    - When I try to export to excel the  get "Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index"
    This error starts today when I change from free library to the  new library with license.

    This is my code:

    ASPX:
        <%@ MasterType VirtualPath="~/UI/EstudiosElectricos.Master" %>
            <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"></asp:Content>
            <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
                <telerik:RadAjaxManagerProxy ID="RadAjaxManagerProxy1" runat="server">
                    <AjaxSettings>
                        <telerik:AjaxSetting AjaxControlID="btnCalcular">
                            <UpdatedControls>
                                <telerik:AjaxUpdatedControl ControlID="lblTotal" />
                                <telerik:AjaxUpdatedControl ControlID="pnlValores" LoadingPanelID="LoadingPanel" />
                                <telerik:AjaxUpdatedControl ControlID="tablaFecha" LoadingPanelID="LoadingPanel" /> </UpdatedControls>
                        </telerik:AjaxSetting>
                        <telerik:AjaxSetting AjaxControlID="btnExportToXLS">
                            <UpdatedControls>
                                <telerik:AjaxUpdatedControl ControlID="Panel1" LoadingPanelID="LoadingPanel" />
                                <telerik:AjaxUpdatedControl ControlID="btnExportarXLS" LoadingPanelID="LoadingPanel" />
                                <telerik:AjaxUpdatedControl ControlID="Listado" LoadingPanelID="LoadingPanel" /> </UpdatedControls>
                        </telerik:AjaxSetting>
                        <telerik:AjaxSetting AjaxControlID="grillaListado">
                            <UpdatedControls>
                                <telerik:AjaxUpdatedControl ControlID="grillaListado" LoadingPanelID="LoadingPanel" /> </UpdatedControls>
                        </telerik:AjaxSetting>
                        <telerik:AjaxSetting AjaxControlID="RadAjaxManager1">
                            <UpdatedControls>
                                <telerik:AjaxUpdatedControl ControlID="Panel1" LoadingPanelID="LoadingPanel" />
                                <telerik:AjaxUpdatedControl ControlID="btnExportToXLS" UpdatePanelRenderMode="Inline" LoadingPanelID="LoadingPanel" />
                                <telerik:AjaxUpdatedControl ControlID="Listado" UpdatePanelRenderMode="Inline" LoadingPanelID="LoadingPanel" />
                                <telerik:AjaxUpdatedControl ControlID="grillaListado" LoadingPanelID="LoadingPanel" /> </UpdatedControls>
                        </telerik:AjaxSetting>
                    </AjaxSettings>
                </telerik:RadAjaxManagerProxy>
                <div id="Div1">
                    <asp:Panel ID="Panel2" GroupingText="Filtros" runat="server" CssClass="pnlFiltroGrande">
                        <asp:Table runat="server" CssClass="Tabla" ID="tablaFecha">
                            <asp:TableHeaderRow>
                                <asp:TableCell CssClass="columna1">Año Desde</asp:TableCell>
                                <asp:TableCell CssClass="columna1">Año Hasta</asp:TableCell>
                                <asp:TableCell CssClass="columna1">Tipo de Proyecto</asp:TableCell>
                                <asp:TableCell CssClass="columna1">País</asp:TableCell>
                                <asp:TableCell CssClass="columna3">
                                    <telerik:RadButton ID="btnLimpiar" TabIndex="5" runat="server" AutoPostBack="true" Text="Limpiar" ToolTip="Limpiar los filtros y resultados" OnClick="btnLimpiar_Click">
                                        <Icon PrimaryIconUrl="~/UI/Imagenes/limpiar.png" PrimaryIconWidth="21px" PrimaryIconHeight="25px" PrimaryIconTop="3px" PrimaryIconLeft="5px" /> </telerik:RadButton>
                                </asp:TableCell>
                            </asp:TableHeaderRow>
                            <asp:TableRow>
                                <asp:TableCell CssClass="columna1">
                                    <telerik:RadNumericTextBox ID="ntxtAnioDesde" TabIndex="0" runat="server" NumberFormat-DecimalDigits="0" NumberFormat-GroupSeparator="" Type="Number" MaxLength="4" MinValue="2000" MaxValue="2200"></telerik:RadNumericTextBox>
                                    <label class="validador">*</label>
                                    <asp:RequiredFieldValidator ID="fvAnioDesde" runat="server" ControlToValidate="ntxtAnioDesde" ValidationGroup="filtro"></asp:RequiredFieldValidator>
                                </asp:TableCell>
                                <asp:TableCell CssClass="columna1">
                                    <telerik:RadNumericTextBox ID="ntxtAnioHasta" TabIndex="1" runat="server" NumberFormat-DecimalDigits="0" NumberFormat-GroupSeparator="" MaxLength="4" Type="Number" MinValue="2000" MaxValue="2200"></telerik:RadNumericTextBox>
                                </asp:TableCell>
                                <asp:TableCell CssClass="columna1">
                                    <telerik:RadComboBox ID="cbTipoProyecto" runat="server" TabIndex="2">
                                        <Items>
                                            <telerik:RadComboBoxItem Text="Ensayos" Value="1" />
                                            <telerik:RadComboBoxItem Text="Estudios" Value="2" />
                                            <telerik:RadComboBoxItem Text="Capacitación" Value="3" />
                                            <telerik:RadComboBoxItem Text="Otros" Value="4" /> </Items>
                                    </telerik:RadComboBox>
                                </asp:TableCell>
                                <asp:TableCell CssClass="columna1">
                                    <telerik:RadComboBox ID="cbPaises" runat="server" TabIndex="4" Width="80%"> </telerik:RadComboBox>
                                </asp:TableCell>
                                <asp:TableCell CssClass="columna3">
                                    <telerik:RadButton ID="btnBuscar" TabIndex="4" runat="server" AutoPostBack="true" Text="Buscar" ToolTip="Buscar antecedentes entre años" OnClick="btnCalcular_Click">
                                        <Icon PrimaryIconUrl="~/UI/Imagenes/buscar.png" PrimaryIconWidth="21px" PrimaryIconHeight="25px" PrimaryIconTop="3px" PrimaryIconLeft="5px" /> </telerik:RadButton>
                                </asp:TableCell>
                            </asp:TableRow>
                        </asp:Table>
                    </asp:Panel>
                    <asp:Panel runat="server" GroupingText="Antecedentes" Style="display: none" ID="pnlValores" ScrollBars="Auto" CssClass="pnlValores" Height="85%">
                        <asp:ImageButton ID="btnImprimir" OnClientClick="Imprimir()" runat="server" ToolTip="Imprimir Pantalla" ImageUrl="~/UI/Imagenes/impresora.png"></asp:ImageButton>
                        <asp:ImageButton ID="btnExportToXLS" runat="server" ToolTip="Exportar a Excel" ImageUrl="~/UI/Imagenes/iconoxls.png" OnClick="btnExportToXLS_Click"></asp:ImageButton>
                        <telerik:RadGrid ID="grillaListado" runat="server" AllowPaging="false" AllowSorting="true" AutoGenerateColumns="false" EnableLinqExpressions="false"   >
                            <MasterTableView Caption="Antecedentes" UseAllDataFields="true">
                                <Columns>
                                    <telerik:GridBoundColumn DataField="numeroOC" HeaderText="Número OC" ItemStyle-Width="10%"></telerik:GridBoundColumn>
                                    <telerik:GridBoundColumn DataField="empresa" HeaderText="Empresa OC" ItemStyle-Width="15%"></telerik:GridBoundColumn>
                                    <telerik:GridBoundColumn DataField="codigoEE" HeaderText="Codigo EE" ItemStyle-Width="8%"></telerik:GridBoundColumn>
                                    <telerik:GridBoundColumn DataField="fecha" HeaderText="Fecha OC" DataType="System.DateTime" DataFormatString="{0:dd/MM/yy}" ItemStyle-Width="8%"></telerik:GridBoundColumn>
                                    <telerik:GridBoundColumn DataField="titulo" HeaderText="Título Proyecto" ItemStyle-Width="39%"></telerik:GridBoundColumn>
                                    <telerik:GridBoundColumn DataField="pais" HeaderText="País Proyecto" ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Left"></telerik:GridBoundColumn>
                                    <telerik:GridBoundColumn DataField="moneda" HeaderText="Moneda" ItemStyle-Width="3%" ItemStyle-HorizontalAlign="Center"></telerik:GridBoundColumn>
                                    <telerik:GridBoundColumn DataField="total" HeaderText="Total" ItemStyle-Width="8%" ItemStyle-HorizontalAlign="Right"></telerik:GridBoundColumn>
                                </Columns>
                            </MasterTableView>
                        </telerik:RadGrid>
                    </asp:Panel>
                </div>
                <telerik:RadCodeBlock ID="indexBlockCode" runat="server">
                    <script type="text/javascript">
                        loadCSS("/UI/Estilos/ControlesUsuarios/listados.css");

                        function Imprimir() {
                            var radGrid = $find('<%= grillaListado.ClientID %>');
                            radGrid.MasterTableView.get_element().style.fontSize = "10px";
                            var anioDesde = $find('<%= ntxtAnioDesde.ClientID %>').get_value();
                            var anioHasta = $find('<%= ntxtAnioHasta.ClientID %>').get_value();
                            var tproyecto = $find('<%= cbTipoProyecto.ClientID %>').get_selectedItem().get_text();
                            var pais = $find('<%= cbPaises.ClientID %>').get_selectedItem().get_text();
                            var previewWnd = window.open('about:blank', 'Antecedentes', '', false);
                            var styleStr = "<html><head><title>Antecedentes</title></head>";
                            var htmlcontent = styleStr +"<body> <label style='font-size:10px'>Año desde:" + anioDesde + " - hasta " + anioHasta + " Tipo de Proyecto: " + tproyecto + " País: " + pais + "</label><br/>" + radGrid.get_element().outerHTML + "</body></html>";
                            previewWnd.document.open();
                            previewWnd.document.write(htmlcontent);
                            previewWnd.document.close();
                            previewWnd.print();
                            previewWnd.close();
                        }
                    </script>
                </telerik:RadCodeBlock>
            </asp:Content>

    C#:
          protected void Page_Load(object sender, EventArgs e)
            {
              
                Inicializar(); if (!Page.IsPostBack)
                { Fcombos.CargaPaises(cbPaises); cbPaises.Items.Insert(0, new Telerik.Web.UI.RadComboBoxItem("-- Todos los países ---", "0"));
                  ntxtAnioHasta.Value = DateTime.Now.Year; ntxtAnioDesde.Value = DateTime.Now.AddYears(-1).Year; 
                }
                
            }
            private void Inicializar()
            { _notificacion = (((EstudiosElectricos)this.Master).ObtenerControlNotificacion()); }
            protected void btnCalcular_Click(object sender, EventArgs e)
            {
                DateTime comenzo = DateTime.Now;
                LlenaGrilla();
                ((EstudiosElectricos)this.Master).tiempoTotal = String.Format("{0:0.00}", (DateTime.Now.Subtract(comenzo)).TotalSeconds) + " Segs";
            }
            private void LlenaGrilla()
            {
                Page.Validate("filtro"); if (!Page.IsValid) { grillaListado.DataSource = null; return; }  pnlValores.Style.Add("display", "block"); List<eeConsultas.eeAntecedentes> lValores = eeConsultas.eeAntecedentes.BuscarProyectos((int)ntxtAnioDesde.Value, (int)ntxtAnioHasta.Value, (short)Convert.ToInt16(cbTipoProyecto.SelectedValue), (short)Convert.ToInt16(cbPaises.SelectedValue)); grillaListado.DataSource = lValores; grillaListado.DataBind();
            }
            protected void btnLimpiar_Click(object sender, EventArgs e)
            { cbPaises.Items.Clear(); Fcombos.CargaPaises(cbPaises); pnlValores.Style.Add("display", "none"); btnExportToXLS.Style.Add("display", "none"); grillaListado.DataSource = null; }
            protected void btnExportToXLS_Click(object sender, ImageClickEventArgs e)
            {
                try
                {

                    grillaListado.MasterTableView.Caption = "    Antecedentes  " + Environment.NewLine + "Año Desde - Hasta: " + ntxtAnioDesde.Value.ToString() + "-" +
                          ntxtAnioHasta.Value.ToString() + " Tipo de Proyecto: " + cbTipoProyecto.Text + "  País: " + cbPaises.Text;
                    grillaListado.ExportSettings.Excel.Format = GridExcelExportFormat.Biff; grillaListado.ExportSettings.IgnorePaging = true; 
                    grillaListado.ExportSettings.ExportOnlyData = true; grillaListado.ExportSettings.OpenInNewWindow = true;
                    grillaListado.ExportSettings.FileName = "Antecedentes"; 
                    grillaListado.MasterTableView.ExportToExcel();
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }
            }


    Can you help me?







  2. Estudios-Electricos
    Estudios-Electricos avatar
    9 posts
    Member since:
    Dec 2014

    Posted 16 Dec 2014 in reply to Estudios-Electricos Link to this post

    I found the solutions!....
  3. UI for ASP.NET Ajax is Ready for VS 2017
  4. Bill Wolff
    Bill Wolff avatar
    10 posts
    Member since:
    Jul 2006

    Posted 14 Jan 2015 in reply to Estudios-Electricos Link to this post

    I am having a similar problem. What was your solution?
Back to Top