Usuário com melhor resposta
NavigateUrl e querystring

Pergunta
-
Estou com o seguinte problema.
Quando feito o debug, nos primeiras linhas
if (!string.IsNullOrEmpty(Request.QueryString[0])) { schoolId = int.Parse(Request.QueryString[0]); }
o if recebe a cadeia de strings para detalhar mas quando passa por ele a variável schoolID está ficando com dois valores ao invés de apenas um do índice [0].
Essa variáveil está assumindo o valor das cadeias [0] e [1].
Segue abaixo o código completo.
using System; using System.IO; using System.Web; using CrystalDecisions.CrystalReports.Engine; using IB = IASD.ASCS.Bussiness; using B = IASD.ASCS.Business; namespace IASD.ASCS.WebForm.reports.closemonth.Report { public partial class Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { ReportDocument crReportDocument = new ReportDocument(); dsClosemonth dsRelatorio = new dsClosemonth(); int schoolId = 0; string dataInicial = null; string dataFinal = null; string schoolName = ""; if (!string.IsNullOrEmpty(Request.QueryString[0])) { schoolId = int.Parse(Request.QueryString[0]); } if (!string.IsNullOrEmpty(Request.QueryString[1])) { schoolName = Request.QueryString[1]; } if (!string.IsNullOrEmpty(Request.QueryString[2])) { dataInicial = Request.QueryString[2]; } if (!string.IsNullOrEmpty(Request.QueryString[3])) { dataFinal = Request.QueryString[3]; } dsRelatorio.CloseCase.Merge(Bussiness.CloseCase.stCloseCaseAll(schoolId,schoolName, dataInicial, dataFinal)); IB.Schools obj = IB.Schools.ListSchoolName(schoolId); crReportDocument.Load(Server.MapPath("crClosemonth.rpt")); crReportDocument.SetDataSource(dsRelatorio); crReportDocument.SetParameterValue("SchoolId", schoolId); crReportDocument.SetParameterValue("SchoolName",schoolName); crReportDocument.SetParameterValue("DataInicial", dataInicial); crReportDocument.SetParameterValue("DataFinal", dataFinal); //Utilizando exportação para pdf BinaryReader stream = new BinaryReader(crReportDocument.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat)); HttpContext.Current.Response.ClearContent(); HttpContext.Current.Response.ClearHeaders(); HttpContext.Current.Response.ContentType = "application/pdf"; HttpContext.Current.Response.BinaryWrite(stream.ReadBytes(Convert.ToInt32(stream.BaseStream.Length))); HttpContext.Current.Response.Flush(); HttpContext.Current.Response.Close(); } } }
protected void LoadNavigateUrl() { if ((!string.IsNullOrEmpty(ddlSchool.SelectedValue) && (!string.IsNullOrEmpty(txtDateInitial.Text)) && (!string.IsNullOrEmpty(txtDateEnd.Text)))) { hlPrint.Enabled = true; hlPrint.Visible = true; hlPrint.NavigateUrl = "/reports/closemonth/report/?SchoolID=" + ddlSchool.SelectedValue + "&SchoolName=" + ddlSchool.SelectedItem + "&InitialDate=" + txtDateInitial.Text + "&EndDate=" + txtDateEnd.Text; } }
Obrigado.
Respostas
-
Fiz um teste rapido aqui e está trazendo o indice certinho.
Tente trocar o indice pelo nome do parametro para ver se resolve.
Caso nada mudar, volte aqui e vamos tentar pensar em alguma coisa para resolver seu problema.
Att.
Rodolfo Oliveira
- Marcado como Resposta Paulo Romeiro quinta-feira, 15 de maio de 2014 17:06
- Não Marcado como Resposta Paulo Romeiro quinta-feira, 15 de maio de 2014 17:06
- Marcado como Resposta Paulo Romeiro quinta-feira, 15 de maio de 2014 17:07
Todas as Respostas
-
-
-
Meu ASP.NET:
<%@ Page Title="" Language="C#" MasterPageFile="~/FrontPage.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="IASD.ASCS.WebForm.reports.closemonth.Default" %> <%@ Register TagPrefix="cc1" Namespace="AjaxControlToolkit" Assembly="AjaxControlToolkit, Version=4.5.7.1005, Culture=neutral, PublicKeyToken=28f01b0e84b6d53e" %> <%@ MasterType VirtualPath="~/FrontPage.Master" %> <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> <div class="form_Close"> <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> <ContentTemplate> <div class="linha"> <div class="texto"> <div class="control-group"> <asp:Label ID="lblSchoolID" runat="server" Text="Escola" Height="33px"></asp:Label> <div class="controls"> <asp:DropDownList ID="ddlSchool" CssClass="textbox_search" runat="server" Width="388px" Height="28px" AutoPostBack="True" /> </div> </div> </div> <div class="field_button"> <div class="control-group"> <asp:Label ID="lblInitialDate" runat="server" Text="Data Inicial" Height="33px" /> <div class="controls"> <asp:TextBox ID="txtDateInitial" runat="server" CssClass="textbox_search" Width="123px" OnTextChanged="txtDateInitial_TextChanged" AutoPostBack="True" /> <cc1:CalendarExtender ID="txtDateInitial_CalendarExtender" runat="server" Enabled="True" Format="dd/MM/yyyy" TargetControlID="txtDateInitial"> </cc1:CalendarExtender> </div> </div> </div> <div class="field_button"> <div class="control-group"> <asp:Label ID="lblEndDate" runat="server" Text="Data Final" Height="33px" /> <div class="controls"> <asp:TextBox ID="txtDateEnd" runat="server" CssClass="textbox_search" Width="123px" OnTextChanged="txtDateEnd_TextChanged" AutoPostBack="True" /> <cc1:CalendarExtender ID="txtDateEnd_CalendarExtender" runat="server" Enabled="True" Format="dd/MM/yyyy" TargetControlID="txtDateEnd"> </cc1:CalendarExtender> </div> </div> </div> <div class="field_button"> <div class="control-group"> <div class="controls"> <asp:HyperLink ID="hlPrint" runat="server" ImageUrl="~/Images/print.png" Target="_blank" Enabled="False" ToolTip="Imprimir">HyperLink</asp:HyperLink> </div> </div> </div> <%-- <div class="linha"> <asp:CustomValidator ID="cvlClose" runat="server" ErrorMessage="Selecionar todos os campos"></asp:CustomValidator> <asp:TextBox ID="txtMessage" runat="server" CssClass="textbox_Transparente" BorderColor="#F7F7F7" Font-Size="14pt" BackColor="#F7F7F7" Font-Italic="True"></asp:TextBox> </div>--%> </div> <br /> </ContentTemplate> </asp:UpdatePanel> <br /> <asp:HiddenField ID="hfclosemonth" runat="server" /> </div> </asp:Content>
-
Fiz um teste rapido aqui e está trazendo o indice certinho.
Tente trocar o indice pelo nome do parametro para ver se resolve.
Caso nada mudar, volte aqui e vamos tentar pensar em alguma coisa para resolver seu problema.
Att.
Rodolfo Oliveira
- Marcado como Resposta Paulo Romeiro quinta-feira, 15 de maio de 2014 17:06
- Não Marcado como Resposta Paulo Romeiro quinta-feira, 15 de maio de 2014 17:06
- Marcado como Resposta Paulo Romeiro quinta-feira, 15 de maio de 2014 17:07