I have developed RDLC report and a drill through, it works but problem is that when drill through report appears , it stays out of layout, like below footer, why ? And when i go back to main report then it also become out of layout why ?
public partial class Report_GetComplaints_SdpoReplies : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { // Two Lines Below Helps in Triggering Generate Report Button Upon Pressing ENTER Button. this.Page.Form.DefaultButton = btnPreview.UniqueID; this.Page.Form.DefaultFocus = btnPreview.ClientID; if (Session.Count <= 0) { //Checks if User Has Not Logged In then Must Be Redirected To Login Page. Response.Redirect("login.aspx"); } if (!IsPostBack) { //Checks if Page is Called For the First Time or Because of Postback By User e.g. Clicking 'Submit' Button ReportViewer1.AsyncRendering = false; ReportViewer1.SizeToReportContent = true; ReportViewer1.ZoomMode = ZoomMode.FullPage; this.ReportViewer1.Reset(); } } protected void btnGenReport_Click(object sender, EventArgs e) { //This Event Generates Report of Complaints Between Specific Dates. try { DataSet dss = (DataSet)Session["UserData"]; int UserID = Convert.ToInt32(dss.Tables[0].Rows[0][3].ToString()); int DesigID = Convert.ToInt32(dss.Tables[0].Rows[0][4].ToString()); MyComplaints obj = new MyComplaints(); ReportViewer1.ProcessingMode = ProcessingMode.Local; ReportViewer1.LocalReport.ReportPath = Server.MapPath("~/Reports/Report_GetComplaints_ForSdpoReplies.rdlc"); DataTable dt = ManageRecievedMessage.Report_SearchSmsRepliesAgainstComplaintsByComplaintCode(txtComplaintCode.Text); if (dt.Rows.Count <= 0) { HiddenFieldSetMessage.Value = "WrongDatesComb"; HiddenFieldShowMessage.Value = "True"; ReportViewer1.Visible = false; } else { ReportDataSource rpds = new ReportDataSource("DataSet1", dt); ReportViewer1.LocalReport.DataSources.Clear(); ReportViewer1.LocalReport.DataSources.Add(rpds); ReportViewer1.Visible = true; } } catch (Exception ex) { Response.Write(ex.Message.ToString()); } } protected void ReportViewer1_Drillthrough(object sender, DrillthroughEventArgs e) { try { LocalReport Report = (LocalReport)e.Report; Report.DataSources.Add(new ReportDataSource("DataSet1", LoadValues(e.Report.GetParameters()))); Report.Refresh(); } catch (Exception ex) { throw new Exception(ex.Message); } } private DataTable LoadValues(ReportParameterInfoCollection c) { try { DataSet1TableAdapters.SubReport_RepliesAgainstComplaints_SpTableAdapter adp = new DataSet1TableAdapters.SubReport_RepliesAgainstComplaints_SpTableAdapter(); return adp.GetData(Convert.ToString(c["ComplaintCode"].Values[0])); } catch (Exception ex) { throw new Exception(ex.Message); throw; } } }
public partial class Report_GetComplaints_SdpoReplies : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { // Two Lines Below Helps in Triggering Generate Report Button Upon Pressing ENTER Button. this.Page.Form.DefaultButton = btnPreview.UniqueID; this.Page.Form.DefaultFocus = btnPreview.ClientID; if (Session.Count <= 0) { //Checks if User Has Not Logged In then Must Be Redirected To Login Page. Response.Redirect("login.aspx"); } if (!IsPostBack) { //Checks if Page is Called For the First Time or Because of Postback By User e.g. Clicking 'Submit' Button ReportViewer1.AsyncRendering = false; ReportViewer1.SizeToReportContent = true; ReportViewer1.ZoomMode = ZoomMode.FullPage; this.ReportViewer1.Reset(); } } protected void btnGenReport_Click(object sender, EventArgs e) { //This Event Generates Report of Complaints Between Specific Dates. try { DataSet dss = (DataSet)Session["UserData"]; int UserID = Convert.ToInt32(dss.Tables[0].Rows[0][3].ToString()); int DesigID = Convert.ToInt32(dss.Tables[0].Rows[0][4].ToString()); MyComplaints obj = new MyComplaints(); ReportViewer1.ProcessingMode = ProcessingMode.Local; ReportViewer1.LocalReport.ReportPath = Server.MapPath("~/Reports/Report_GetComplaints_ForSdpoReplies.rdlc"); DataTable dt = ManageRecievedMessage.Report_SearchSmsRepliesAgainstComplaintsByComplaintCode(txtComplaintCode.Text); if (dt.Rows.Count <= 0) { HiddenFieldSetMessage.Value = "WrongDatesComb"; HiddenFieldShowMessage.Value = "True"; ReportViewer1.Visible = false; } else { ReportDataSource rpds = new ReportDataSource("DataSet1", dt); ReportViewer1.LocalReport.DataSources.Clear(); ReportViewer1.LocalReport.DataSources.Add(rpds); ReportViewer1.Visible = true; } } catch (Exception ex) { Response.Write(ex.Message.ToString()); } } protected void ReportViewer1_Drillthrough(object sender, DrillthroughEventArgs e) { try { LocalReport Report = (LocalReport)e.Report; Report.DataSources.Add(new ReportDataSource("DataSet1", LoadValues(e.Report.GetParameters()))); Report.Refresh(); } catch (Exception ex) { throw new Exception(ex.Message); } } private DataTable LoadValues(ReportParameterInfoCollection c) { try { DataSet1TableAdapters.SubReport_RepliesAgainstComplaints_SpTableAdapter adp = new DataSet1TableAdapters.SubReport_RepliesAgainstComplaints_SpTableAdapter(); return adp.GetData(Convert.ToString(c["ComplaintCode"].Values[0])); } catch (Exception ex) { throw new Exception(ex.Message); throw; } } }