none
Filtrar reporte rdlc con dropdownlist RRS feed

  • Pregunta

  • Hola,

    estoy haciendo un reporte rdlc con reportviewer, c#.net 2010 y sqlserver, el cual quiero filtrar segun el valor seleccionado en un dropdownlist, pero siempre me toma el primer valor de la lista.

    este es el codigo:

        

    public partial class Rpt_pctesSector : System.Web.UI.Page
    {

         int sector;
        
        protected void Page_Load(object sender, EventArgs e)
        {

            cbo.DataSource = func.llenaSector();
            cbo.DataTextField = "DESCRIP";
            cbo.DataValueField = "COD_SEC";
            cbo.DataBind();

        }

        private DataTable getReport()
        {
            DataTable tabla = new DataTable();
            SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["cn"].ConnectionString);

            try
            {
                SqlCommand cmd = new SqlCommand("HOS_PCTES_SECTOR", con);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("COD_SEC", sector);

                SqlDataAdapter da = new SqlDataAdapter(cmd);
                da.Fill(tabla);

            }
            catch (Exception ex)
            {
                Response.Write(ex.ToString());
            }
            finally
            {
                if (con != null)
                {
                    con.Close();
                }
            }
            return tabla;
        }

        protected void btnok_Click(object sender, EventArgs e)
        {
            //sector = Convert.ToInt32(Session["sector"]);
            DataTable dt = getReport();
            ReportViewer1.LocalReport.ReportPath = "Reportes/Pctes_sector.rdlc";
            ReportViewer1.LocalReport.DataSources.Clear();
            ReportViewer1.LocalReport.DataSources.Add(new ReportDataSource("DataSet1", dt));
            ReportViewer1.DataBind();
            ReportViewer1.Visible = true;
        }

        protected void cbosector_SelectedIndexChanged(object sender, EventArgs e)
        {
            Session["sector"] = Convert.ToInt32(cbosector.SelectedValue);
            sector = Convert.ToInt32(Session["sector"]);

        }
    }

    intente con variables de sesion pero no funciona,siempre toma solamente el primer item del dropdown.

    alguna idea??

    miércoles, 10 de junio de 2015 18:05

Respuestas

  • hola

    intenta usando

    protected void Page_Load(object sender, EventArgs e)
    {
           if(!IsPostBack)
           {
              cbo.DataSource = func.llenaSector();
              cbo.DataTextField = "DESCRIP";
              cbo.DataValueField = "COD_SEC";
              cbo.DataBind();
           }
    
    }

    de esta forma al lanzarse el evento no se recargara el combo

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta daniel_316.- miércoles, 10 de junio de 2015 19:57
    miércoles, 10 de junio de 2015 18:31

Todas las respuestas

  • hola

    intenta usando

    protected void Page_Load(object sender, EventArgs e)
    {
           if(!IsPostBack)
           {
              cbo.DataSource = func.llenaSector();
              cbo.DataTextField = "DESCRIP";
              cbo.DataValueField = "COD_SEC";
              cbo.DataBind();
           }
    
    }

    de esta forma al lanzarse el evento no se recargara el combo

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta daniel_316.- miércoles, 10 de junio de 2015 19:57
    miércoles, 10 de junio de 2015 18:31
  • perfecto.

    muchas gracias

    miércoles, 10 de junio de 2015 19:58