private void BindReport()
 {
    // string values = String.Join(", ", ddlCaption.Items.Cast<ListItem>().Where(i => i.Selected).Select(i => i.Value).ToArray());
     string values = String.Join(",", ddlCaption.Items.Cast<ListItem>().Where(i => i.Selected).Select(i => i.Value).ToArray());
     string vTerritory = String.Join(";", lstTerritory.Items.Cast<ListItem>().Where(i => i.Selected).Select(i => i.Value).ToArray());
     string vState = String.Join(",", lstState.Items.Cast<ListItem>().Where(i => i.Selected).Select(i => i.Value).ToArray());
     string[] sval = (ddlCaption.Items.Cast<ListItem>().Where(i => i.Selected).Select(i => i.Value).ToArray());
     IList<TblCSNList> values1; 
     dynamic result;
     DataSet ds = new DataSet();
     clsReports obclsReports = new clsReports();
     ds = obclsReports.CSNList(values, vTerritory,vState); 
     ReportDataSource rds = new ReportDataSource("DataSet1", ds.Tables[0]);
     ReportViewer1.LocalReport.DataSources.Clear(); 
     ReportParameter[] rParam = new ReportParameter[chkColumnList.Items.Count];
     for (Int32 i = 0; i < chkColumnList.Items.Count; i++)
         {
             rParam[i] = new ReportParameter(chkColumnList.Items[i].Value, (chkColumnList.Items[i].Selected == true ? "True" : "false"));
         }
         ReportViewer1.LocalReport.SetParameters(rParam);
         ReportViewer1.LocalReport.DataSources.Add(rds);
         ReportViewer1.LocalReport.Refresh(); 
 }