This is a migrated thread and some comments may be shown as answers.

Could not find UpdatePanel with ID 'xxx'

11 Answers 1435 Views
Ajax
This is a migrated thread and some comments may be shown as answers.
Phillip
Top achievements
Rank 1
Phillip asked on 26 Jan 2015, 03:51 PM
I am using dynamically loaded user controls into a MultiPageView control.  I have a button event in the dynamic user control to update a control in the user control.  I get an error "Microsoft JScript runtime error: Sys.InvalidOperationException: Could not find UpdatePanel with ID 'PV4_userControl_ReportViewer1_ReportViewer'.  If it is being updated dynamically then it must be inside another update panel.

I have not found demo code that matched my requirements.  I need the tab strip and RadMultiPage controls to be loaded at run time.  The only dynamic user controls I have found is loaded into the parent page via a panel control  The code is using the SQL server reporting services web report viewer control.  .

The user control button event does post back and the code executes.  The report viewer is in the user control markup.  I have tried using the radajaxmanagerproxy in the user control.  I still got the same error.  I have also tried the below code in the parent page.  I still get the same error.  Do you have any suggestions?

SSRSReportUserControl controlR = (SSRSReportUserControl)Page.LoadControl("~/SSRSREportUserControl.ascx");
controlR.ID = e.PageView.ID + "_userControl";

e.PageView.Controls.Add(controlR);
Button myButton = (Button)controlR.FindControl("Button1");
ReportViewer myRpt = (ReportViewer)controlR.FindControl("ReportViewer1");

RadAjaxManager1.AjaxSettings.AddAjaxSetting(MyButton, myRpt);

11 Answers, 1 is accepted

Sort by
0
Maria Ilieva
Telerik team
answered on 29 Jan 2015, 12:28 PM
Hi Phillip,

The presented error most commonly appear in case nested UpdatePanel elements render on the page, which is caused by adding nested AjaxSettings in the applictaion. In this case it will be best if you can share your code (the main content page the user control and all related code behind) so that we can further investigate this issue and advise you for possible solution.


Regards,
Maria Ilieva
Telerik
 

Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.

 
0
Phillip
Top achievements
Rank 1
answered on 30 Jan 2015, 04:41 PM
I cannot do a cut and paste info this forum.  I cannot attach text files.  How can I get you my code?
0
Maria Ilieva
Telerik team
answered on 04 Feb 2015, 07:43 AM
Hello Phillip,

You can use the Format Code Block option (When expand the Formatting Option link) you have in the editor where the text is typed when forum post is submitted and paste the code there.
See the image attached.

Regards,
Maria Ilieva
Telerik
 

Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.

 
0
Phillip
Top achievements
Rank 1
answered on 09 Feb 2015, 10:18 PM
Below is the main content page markup.

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default"  %>
 
<%@ Register src="HomeUserControl.ascx" tagname="Home" tagprefix="uc1" %>
 
<%@ Register src="UsersUserControl.ascx" tagname="Users" tagprefix="uc2" %>
 
<%@ Register src="StudySetupUserControl.ascx" tagname="StudySetup" tagprefix="uc3" %>
 
<%@ Register src="SSRSReportUserControl.ascx" tagname="SSRSReport" tagprefix="uc4" %>
 
<%@ Register src="QualityControlUserControl.ascx" tagname="QualityControl" tagprefix="uc5" %>
<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
    Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<link rel="stylesheet" href="Styles/main.css" type="text/css" media="screen" />
 
 
 
<head id="Head1" runat="server">
    <title></title>
    <telerik:RadStyleSheetManager id="RadStyleSheetManager1" runat="server" />
 
</head>
<body>
    <form id="form1" runat="server">
         
    <telerik:RadScriptManager ID="RadScriptManager1" runat="server">
        <Scripts>
            <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.Core.js" />
            <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQuery.js" />
            <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQueryInclude.js" />
            <asp:ScriptReference Path="~/cachable_scripts.js" />
        </Scripts>
    </telerik:RadScriptManager>
     
    <telerik:RadSkinManager ID="QsfSkinManager" runat="server" ShowChooser="true" PersistenceMode="Session"  />
    <telerik:RadFormDecorator ID="QsfFromDecorator" runat="server" DecoratedControls="All" EnableRoundedCorners="false" />
    <telerik:RadWindowManager ID="RadWindowManager1" runat="server"></telerik:RadWindowManager>
 
    <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
        <AjaxSettings>
            <telerik:AjaxSetting AjaxControlID="RadSponsorComboBox">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="RadProtocolComboBox"
                        LoadingPanelID="RadAjaxLoadingPanel1" UpdatePanelCssClass="" />
                </UpdatedControls>
            </telerik:AjaxSetting>
             
            <telerik:AjaxSetting AjaxControlID="RadProtocolComboBox">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="lblWelcomeUser"
                        LoadingPanelID="RadAjaxLoadingPanel1" />
                </UpdatedControls>
            </telerik:AjaxSetting>
             
 
            <telerik:AjaxSetting AjaxControlID="RadProtocolComboBox">
 
                <UpdatedControls>
 
                    <telerik:AjaxUpdatedControl ControlID="lnkYes"></telerik:AjaxUpdatedControl>
 
                    <telerik:AjaxUpdatedControl ControlID="Panel1" LoadingPanelID="RadAjaxLoadingPanel1">
 
                    </telerik:AjaxUpdatedControl>
 
                </UpdatedControls>
 
            </telerik:AjaxSetting>
 
            <telerik:AjaxSetting AjaxControlID="RadProtocolComboBox">
 
                <UpdatedControls>
 
                    <telerik:AjaxUpdatedControl ControlID="lnkNo"></telerik:AjaxUpdatedControl>
 
                    <telerik:AjaxUpdatedControl ControlID="Panel1" LoadingPanelID="RadAjaxLoadingPanel1">
 
                    </telerik:AjaxUpdatedControl>
 
                </UpdatedControls>
 
            </telerik:AjaxSetting>
 
            <telerik:AjaxSetting AjaxControlID="RadProtocolComboBox">
 
                <UpdatedControls>
 
                    <telerik:AjaxUpdatedControl ControlID="RadMultiPage1" LoadingPanelID="RadAjaxLoadingPanel1">
 
                    </telerik:AjaxUpdatedControl>
 
                </UpdatedControls>
                </telerik:AjaxSetting>
                <telerik:AjaxSetting AjaxControlID="RadProtocolComboBox">
 
                <UpdatedControls>
 
                    <telerik:AjaxUpdatedControl ControlID="RadTabStrip1" LoadingPanelID="RadAjaxLoadingPanel1">
 
                    </telerik:AjaxUpdatedControl>
 
                </UpdatedControls>
            </telerik:AjaxSetting>
 
            <telerik:AjaxSetting AjaxControlID="RadSponsorComboBox">
 
                <UpdatedControls>
 
                    <telerik:AjaxUpdatedControl ControlID="lnkYes"></telerik:AjaxUpdatedControl>
 
                    <telerik:AjaxUpdatedControl ControlID="Panel1" LoadingPanelID="RadAjaxLoadingPanel1">
 
                    </telerik:AjaxUpdatedControl>
 
                </UpdatedControls>
 
            </telerik:AjaxSetting>
 
            <telerik:AjaxSetting AjaxControlID="RadSponsorComboBox">
 
                <UpdatedControls>
 
                    <telerik:AjaxUpdatedControl ControlID="lnkNo"></telerik:AjaxUpdatedControl>
 
                    <telerik:AjaxUpdatedControl ControlID="Panel1" LoadingPanelID="RadAjaxLoadingPanel1">
 
                    </telerik:AjaxUpdatedControl>
 
                </UpdatedControls>
 
            </telerik:AjaxSetting>
            <telerik:AjaxSetting AjaxControlID="RadTabStrip1">
 
                    <UpdatedControls>
 
                        <telerik:AjaxUpdatedControl ControlID="RadTabStrip1"></telerik:AjaxUpdatedControl>
 
                        <telerik:AjaxUpdatedControl ControlID="RadMultiPage1" LoadingPanelID="RadAjaxLoadingPanel1"></telerik:AjaxUpdatedControl>
 
                    </UpdatedControls>
 
                </telerik:AjaxSetting>
 
                <telerik:AjaxSetting AjaxControlID="RadMultiPage1">
 
                    <UpdatedControls>
 
                        <telerik:AjaxUpdatedControl ControlID="RadMultiPage1"></telerik:AjaxUpdatedControl>
 
                    </UpdatedControls>
 
                </telerik:AjaxSetting>
 
            </AjaxSettings>
 
    </telerik:RadAjaxManager>
 
    <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server"></telerik:RadAjaxLoadingPanel>
     
    
        <h1>
            <asp:Literal runat="server" ID="LogoLiteral" Text="Imaging Table Editor"></asp:Literal>
        </h1>
         
        <asp:Panel ID="headerPanel" runat="server" >
            <asp:Label CssClass="welcomeUser" runat="server" ID="lblWelcomeUser" Text="" ></asp:Label>
            <div class="headerToolBox">
             
                <telerik:RadToolBar ID="HeaderToolBar" runat="server" AutoPostBack="True" OnButtonClick="HeaderToolBar_ButtonClick" SingleClick="None">              
                    <Items>       
                        <%--<telerik:RadToolBarButton Text="Change Password" Group="NavigateButtons" CommandName="ChangePassword" EnableTheming="True" />--%>
                        <telerik:RadToolBarButton Text="Logout" Group="NavigateButtons" CommandName="Logout"  />
                        <telerik:RadToolBarButton Text="About" Group="NavigateButtons" CommandName="About"   />
                    </Items>
                </telerik:RadToolBar>
             </div>
 
             <div
                <table   cellspacing="0" cellpadding="0" >
                    <tr>
                        <td>
                            <telerik:RadComboBox ID="RadSponsorComboBox" Runat="server" Height="200px"
                                Width="184px" DropDownWidth="310" EmptyMessage="Choose a Sponsor" HighlightTemplatedItems="true"
                                EnableLoadOnDemand="true" autopostback="True"
                                OnItemsRequested="RadComboBox_Sponsor_ItemsRequested"
                                onselectedindexchanged="RadSponsorComboBox_SelectedIndexChanged"
                                        Label="Sponsor    " LoadingMessage="Loading Sponsors...">
                                <HeaderTemplate>
                                    <table style="width: 275px" cellspacing="0" cellpadding="0">
                                        <tr>
                                            <td style="width: 200px;"> Sponsor Name</td>
                                            <td style="width: 60px;">  # of Studies </td>
                                        </tr>
                                    </table>
                                </HeaderTemplate>
                                <ItemTemplate>
                                    <table style="width: 275px" cellspacing="0" cellpadding="0">
                                        <tr>
                                            <td style="width: 175px;"> <%# DataBinder.Eval(Container, "Text")%> </td>
                                            <td style="width: 60px;">  <%# DataBinder.Eval(Container, "Attributes['Studies']")%> </td>       
                                        </tr>
                                    </table>
                                </ItemTemplate>
                            </telerik:RadComboBox>
                        </td>
                        <td>
                            <telerik:RadComboBox ID="RadProtocolComboBox" Runat="server" Height="200px"
                                Width="184px" DropDownWidth="310" EmptyMessage="Choose a Sponsor" HighlightTemplatedItems="true"
                                onselectedindexchanged="RadProtocolComboBox_SelectedIndexChanged" autopostback="true"
                                EnableLoadOnDemand="true" Filter="StartsWith"  Label="    Protocol    " >
                                <HeaderTemplate>
                                    <table style="width: 275px" cellspacing="0" cellpadding="0">
                                        <tr>
                                            <td style="width: 200px;"> Protocol Name</td>
                                            <td style="width: 60px;">  # of Records </td>
                                            <td style="width: 60px;">  # of Modifications </td>
                                        </tr>
                                    </table>
                                </HeaderTemplate>
                                <ItemTemplate>
                                    <table style="width: 275px" cellspacing="0" cellpadding="0">
                                        <tr>
                                            <td style="width: 175px;"> <%# DataBinder.Eval(Container, "Text")%> </td>
                                            <td style="width: 60px;">  <%# DataBinder.Eval(Container, "Attributes['Records']")%> </td>
                                            <td style="width: 60px;">  <%# DataBinder.Eval(Container, "Attributes['Modificaitions']")%> </td>       
                                        </tr>
                                    </table>
                                </ItemTemplate>
                            </telerik:RadComboBox>
                        </td>
                         
                    </tr>
                    <tr><td>
                            <asp:Panel ID="Panel1" runat="server"><table><tr><td><asp:Label ID="lblError" runat="server"></asp:Label><br /></td></tr>
                            <tr><td>
                            <asp:RadioButtonList ID="radbtnlist"    runat="server" RepeatDirection="Horizontal" AutoPostBack="true" OnSelectedIndexChanged="Index_Changed"
                     </asp:RadioButtonList
  
 
                            </td></tr></table>
                            </asp:Panel>
                            </td>
</tr>
                </table>
            </div>
            <br />
            </asp:Panel>
  
     
    <asp:Label runat="server" ID="lblNoAccess" Text="" ></asp:Label>
    <telerik:RadTabStrip ID="RadTabStrip1"  
        MultiPageID="RadMultiPage1" runat="server" SelectedIndex="0" OnTabClick="RadTabStrip1_TabClick">
    </telerik:RadTabStrip>
    <telerik:RadMultiPage id="RadMultiPage1" runat="server" SelectedIndex="0" RenderSelectedPageOnly="true" OnPageViewCreated="RadMultiPage1_PageViewCreated">
    </telerik:RadMultiPage>
 
    </form>
</body>
</html>

0
Phillip
Top achievements
Rank 1
answered on 09 Feb 2015, 10:20 PM
Below is the code behind from the main page.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Telerik.Web.UI;
using System.Data;
using System.Diagnostics;
using System.Configuration;
using System.DirectoryServices;
using System.Web.Security;
using System.Collections;
using Microsoft.Reporting.WebForms;
 
public partial class _Default : System.Web.UI.Page
{
    public readonly int HOME_PAGE = 0;
    public readonly int USERS_PAGE = 1;
    public readonly int SS_PAGE = 2;
    public readonly int REPORTS_PAGE = 3;
    public readonly int QC_PAGE = 4;
    public readonly int TODO_PAGE = 5;
    public readonly int SPLASH_PAGE = 6;
    public readonly int CHANGEPASSWORD_PAGE = 7;
    public readonly int PASS_RECOVER_PAGE = 8;
    public readonly int REGISTER_PAGE = 9;
 
 
 
    public string Sponsor
    {
        get
        {
            return Session["sponsor"].ToString();
        }
        set
        {
            Session["sponsor"] = value;
        }
    }
 
    public string Protocol
    {
        get
        {
            return Session["protocol"].ToString();
        }
        set
        {
            Session["protocol"] = value;
        }
    }
 
    public string StudyFieldsTable
    {
        get
        {
            return Session["studyFieldsTable"].ToString();
        }
        set
        {
            Session["studyFieldsTable"] = value;
        }
    }
 
    public Int64 StudyID
    {
        get
        {
            return (Int64) Session["studyID"];
        }
        set
        {
            Session["studyID"] = value;
        }
    }
 
    public int QcPercentage
    {
        get
        {
            return (int)Session["qcPercentage"];
        }
        set
        {
            Session["qcPercentage"] = value;
        }
    }
 
    public int UserID
    {
        get
        {
            return (int) Session["userID"];
        }
        set
        {
            Session["userID"] = value;
        }
    }
 
    public bool IsUserAnAdmin
    {
        get
        {
            return (bool)Session["isUserAnAdmin"];
        }
        set
        {
            Session["isUserAnAdmin"] = value;
        }
    }
 
    public bool UseReport
    {
        get
        {
            return (bool) Session["useReport"];
        }
        set
        {
            Session["useReport"] = value;
        }
    }
    public bool ProgrammingError
    {
        get
        {
            return (bool)Session["programmingError"];
        }
        set
        {
            Session["programmingError"] = value;
        }
    }
 
    public string UserStudyRole
    {
        get
        {
            return Session["userStudyRole"].ToString();
        }
        set
        {
            Session["userStudyRole"] = value;
        }
    }
 
    protected void Page_Load(object sender, EventArgs e)
    {
        string study = RadSponsorComboBox.Text;
        if(string.IsNullOrEmpty(study))
            RadProtocolComboBox.Enabled = false;
 
        if (RadSponsorComboBox != null && Session["uid"] == null)
        {
            string page = this.Page.ToString();
            Telerik.Web.UI.RadSkinManager.GetCurrent(this.Page).ApplySkin(form1);
        }
        if (!Page.IsPostBack)
        {
            //ActiveDirectoryUsers.Users ADuser = ActiveDirectoryUsers.GetCurrentUser();
            //Core.Entities.User myUser = new Core.Entities.User(ADuser.UserName);
            Core.Entities.User myUser = new Core.Entities.User(User.Identity.Name.Substring(7));
 
            if (myUser.UserID == 0)                                 //new user no access yet.
            {
                lblNoAccess.Text = "You have not been granted access to the application.  Please contact the Imaging dept head.";
                lblNoAccess.ForeColor = System.Drawing.Color.Red;
                lblNoAccess.Font.Size = (FontUnit)16.0;
                headerPanel.Visible = false;
            }
 
            if (Core.Data.Users.IsUserLockedOut(User.Identity.Name.Substring(7)))       // User is locked out
            {
                lblNoAccess.Text = "You have been locked out.  Please contact the Imaging dept head.";
                lblNoAccess.ForeColor = System.Drawing.Color.Red;
                lblNoAccess.Font.Size = (FontUnit)16.0;
                headerPanel.Visible = false;
            }
 
         
            //Session["UserName"] = HttpContext.Current.User.Identity.Name.Substring(7);
            UserID = Core.Data.Users.GetUserIDFromUserName(HttpContext.Current.User.Identity.Name.Substring(7));
 
 
        }
         
    }
 
    #region RadHeaderBar
    protected void HeaderToolBar_ButtonClick(object sender, Telerik.Web.UI.RadToolBarEventArgs e)
    {   
        RadToolBarButton btn = e.Item as RadToolBarButton;
        switch (btn.CommandName.ToString())
        {
            case "About":
                string version = "Version - " + ConfigurationManager.AppSettings["version"].ToString();
                RadWindowManager1.RadAlert(version, 200, 100, "About", null, "");
                break;
 
            case "Logout":
                Session.RemoveAll();
                FormsAuthentication.SignOut();
                FormsAuthentication.RedirectToLoginPage();
                break;
            //case "ChangePassword":
            //    RadMultiPage1.SelectedIndex = CHANGEPASSWORD_PAGE; 
            //    RadTabStrip1.Tabs[CHANGEPASSWORD_PAGE].Selected = true;
            //    break;
        }
    }
 
   
     
    #endregion
 
    #region ComboBoxes
    protected void RadComboBox_Sponsor_ItemsRequested(object sender, RadComboBoxItemsRequestedEventArgs e)
    {
        string sql;
        IsUserAnAdmin = Core.Data.Users.IsUserAnAdmin(UserID);
 
        if (IsUserAnAdmin)
            sql = @"select Distinct Study.Sponsor from Study Study";
        else
            sql = @"select Distinct Study.Sponsor from Study Study
                        Inner Join User_Accounts_Study UserStudy on Study.StudyID=UserStudy.StudyID
                        Inner Join User_Accounts Users on UserStudy.UserID=Users.UserID
                        where Users.UserID=" + UserID;
        DataTable dataTable = new DataTable();
        dataTable = Core.Data.Data.SQLRetrieve(sql);
 
        foreach (DataRow dataRow in dataTable.Rows)
        {
            RadComboBoxItem item = new RadComboBoxItem();
            //Debug.Print(dataRow.ItemArray[0].ToString());
            item.Text = dataRow.ItemArray[0].ToString();
            item.Value = dataRow.ItemArray[0].ToString();
             
             
            string sqlStudiesNumber = "select COUNT(*) from Study where Sponsor = '" + dataRow.ItemArray[0].ToString() + "'";
            DataTable dtStudies = new DataTable();
            dtStudies = Core.Data.Data.SQLRetrieve(sqlStudiesNumber);
            item.Attributes.Add("Studies", dtStudies.Rows[0][0].ToString());
 
            RadSponsorComboBox.Items.Add(item);
             
        }
        RadSponsorComboBox.DataBind();
    }
 
    //Loads the Protocol Combobox
    protected void RadSponsorComboBox_SelectedIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)
    {
        ResetErrorMessage();
        ReloadProtocolList();
    }
 
    protected void ReloadProtocolList()
    {
        Sponsor = RadSponsorComboBox.Text;
        //Debug.Print(sponsor);
        RadProtocolComboBox.Text = "";
        RadProtocolComboBox.Items.Clear();
        string sql;
 
        if (IsUserAnAdmin)
            sql = @"select Distinct Stdy.Protocol, Stdy.ProgrammingError, Stdy.TableNamePrefix, Stdy.UseReport, Stdy.StudyID, Stdy.QcPercentage from Study Stdy
                    where Stdy.Sponsor='" + Sponsor + "'";
        else
            sql = @"select Distinct Stdy.Protocol, Stdy.ProgrammingError, Stdy.TableNamePrefix, Stdy.UseReport, Stdy.StudyID, Stdy.QcPercentage from Study Stdy
                        Inner Join User_Accounts_Study UserStudy on Stdy.StudyID=UserStudy.StudyID
                        Inner Join User_Accounts Users on UserStudy.UserID=Users.UserID
                        where Users.UserID=" + UserID + " and Stdy.Sponsor='" + Sponsor + "'";
        DataTable dataTable = new DataTable();
        dataTable = Core.Data.Data.SQLRetrieve(sql);
 
        foreach (DataRow dataRow in dataTable.Rows)
        {
            RadComboBoxItem item = new RadComboBoxItem();
 
            Debug.Print(dataRow.ItemArray[0].ToString());
            item.Text = dataRow.ItemArray[0].ToString();
            item.Value = dataRow.ItemArray[0].ToString();
            item.Attributes["ProgrammingError"] = dataRow.ItemArray[1].ToString();
            item.Attributes["TableNamePrefix"] = dataRow.ItemArray[2].ToString();
            item.Attributes["UseReport"] = dataRow.ItemArray[3].ToString();
            item.Attributes["StudyID"] = dataRow.ItemArray[4].ToString();
            item.Attributes["QcPercentage"] = dataRow.ItemArray[5].ToString();
 
            DataTable dtTableName = new DataTable();
 
            string sqlStudiesNumber = "select COUNT(*) from Sponsor_Study_Master_Parent Where StudyID = " + item.Attributes["StudyID"];
            DataTable dtStudies = new DataTable();
            dtStudies = Core.Data.Data.SQLRetrieve(sqlStudiesNumber);
            Debug.Print(sqlStudiesNumber);
            item.Attributes.Add("Records", dtStudies.Rows[0][0].ToString());
 
            DataTable dtAuditData = new DataTable();
            dtAuditData = Core.Data.Data.SQLRetrieve("exec GetAllAuditDataViaSponsorAndProtocolNew " + item.Attributes["StudyID"]);
            item.Attributes.Add("Modificaitions", dtAuditData.Rows.Count.ToString());
            
            RadProtocolComboBox.Items.Add(item);
            item.DataBind();
        }
 
        RadProtocolComboBox.Enabled = true;
 
 
    }
 
    //set Session vars from which stored proc's will be called
    protected void RadProtocolComboBox_SelectedIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)
    {
        ResetErrorMessage();
 
        Sponsor = RadSponsorComboBox.Text;
        Protocol = RadProtocolComboBox.Text;
        StudyFieldsTable = RadProtocolComboBox.SelectedItem.Attributes["TableNamePrefix"] + "_Elements_Attribute";
         
        StudyID = Convert.ToInt32(RadProtocolComboBox.SelectedItem.Attributes["StudyID"]);
 
        UseReport = Convert.ToBoolean(RadProtocolComboBox.SelectedItem.Attributes["UseReport"]);
        ProgrammingError = Convert.ToBoolean(RadProtocolComboBox.SelectedItem.Attributes["ProgrammingError"]);
        QcPercentage = Convert.ToInt32(RadProtocolComboBox.SelectedItem.Attributes["QcPercentage"]);
 
        string projectRole;
        RadMultiPage1.PageViews.Clear();
 
        if (IsUserAnAdmin)
        {
            UserStudyRole = Core.TableEditorTypes.UserStudyRoles.MIS.ToString();
            projectRole = "MIS";
            RadTabStrip1.DataSource = getDataAdmin();
        }
        else
        {
            UserStudyRole = Core.Data.Users.GetUserStudyRoleFromUserIdAndStudyId(UserID, Convert.ToInt32(StudyID)).ToString();
            projectRole = Core.Data.Users.GetStudyRoleNameFromStudyRoleId(Convert.ToInt32(UserStudyRole));
            if (projectRole == "PM")
                RadTabStrip1.DataSource = getDataPM();
            else
                RadTabStrip1.DataSource = getDataQC();
        }
 
        RadTabStrip1.DataTextField = "TABNAME";
        RadTabStrip1.DataValueField = "TABID";
        RadTabStrip1.DataBind();
 
        for (int i = 0; i < RadTabStrip1.Tabs.Count; i++)
        {
            AddPageView(RadTabStrip1.Tabs[i]);
        }
 
         
         
 
         
        //display Admin instead of MIS
        if (projectRole == "MIS")
            lblWelcomeUser.Text = "Welcome <b>" + HttpContext.Current.User.Identity.Name.Substring(7) + "</b>!  [Admin]   ";
        else
            lblWelcomeUser.Text = "Welcome <b>" + HttpContext.Current.User.Identity.Name.Substring(7) +"</b>!  [" + projectRole + "]   ";
 
        if (ProgrammingError)
        {
            lblError.Text = "A Programming Error occurred for this study.  Do you 100% QC for this study?";
            lblError.ForeColor = System.Drawing.Color.Red;
            Hashtable myitem = new Hashtable();
             
            myitem.Add("No", "No");
            myitem.Add("Yes", "Yes");
            radbtnlist.DataSource = myitem;
            radbtnlist.DataValueField = "Key";
            radbtnlist.DataTextField = "Value";
            radbtnlist.DataBind();
 
             
        }
        else
        {
            ResetErrorMessage();
        }
    }
 
    protected DataTable getDataAdmin()
    {
        //AddTab("Home");
        //AddTab("Users");
        //AddTab("Study Setup");
        //AddTab("Reports");
        //AddTab("Quality Control");
        DataTable table = new DataTable();
 
        table.Columns.Add("TABID");
        table.Columns.Add("TABNAME");
 
        table.Rows.Add(new string[] { "1", "Home" });
        table.Rows.Add(new string[] { "2", "Users" });
        table.Rows.Add(new string[] { "3", "Study Setup" });
        table.Rows.Add(new string[] { "4", "Reports" });
        table.Rows.Add(new string[] { "5", "Quality Control" });
 
        return table;
    }
 
    protected DataTable getDataPM()
    {
        //AddTab("Home");
        //AddTab("Study Setup");
        //AddTab("Reports");
        //AddTab("Quality Control");
 
        DataTable table = new DataTable();
 
        table.Columns.Add("TABID");
        table.Columns.Add("TABNAME");
 
        table.Rows.Add(new string[] { "1", "Home" });
        table.Rows.Add(new string[] { "3", "Study Setup" });
        table.Rows.Add(new string[] { "4", "Reports" });
        table.Rows.Add(new string[] { "5", "Quality Control" });
 
        return table;
    }
 
    protected DataTable getDataQC()
    {
        //AddTab("Home");
        //AddTab("Reports");
        //AddTab("Quality Control");
        DataTable table = new DataTable();
 
        table.Columns.Add("TABID");
        table.Columns.Add("TABNAME");
 
        table.Rows.Add(new string[] { "1", "Home" });
        table.Rows.Add(new string[] { "4", "Reports" });
        table.Rows.Add(new string[] { "5", "Quality Control" });
 
        return table;
         
    }
 
    private void AddTab(string tabName)
    {
        RadTab tab = new RadTab();
        tab.Text = tabName;
        RadTabStrip1.Tabs.Add(tab);
    }
 
    protected void Index_Changed(Object sender, EventArgs e)
    {
        string sql = "";
 
        switch (radbtnlist.SelectedItem.Text)
        {
            case "Yes":
                //The trigger on parent table will write to audit table
                sql = "UPDATE Sponsor_Study_Master_Parent SET QcStatus = 'Needs Qc', UserName='" + HttpContext.Current.User.Identity.Name.Substring(7) + "',EditComments='Programming Error', where StudyID = " + StudyID.ToString();
                Core.Data.Data.SQLExec(sql);
                sql = "UPDATE Study SET ProgrammingError = 0 where StudyID = " + StudyID.ToString();
                Core.Data.Data.SQLExec(sql);
                ResetErrorMessage();
 
                break;
 
            case "No":
                sql = "UPDATE Study SET ProgrammingError = 0 where StudyID = " + StudyID.ToString();
                Core.Data.Data.SQLExec(sql);
                ResetErrorMessage();
 
                break;
        }
 
    }
 
    private void ResetErrorMessage()
    {
        lblError.Text = "";
        radbtnlist.Items.Clear();
 
    }
 
    #endregion
 
    private void ShowAlert(string sAlertMessageText)
    {
        ScriptManager.RegisterStartupScript(this, this.GetType(), "sqlErr", "alert('" + sAlertMessageText.Trim().Replace("'", "") + "');", true);
    }
 
    protected void RadTabStrip1_TabClick(object sender, RadTabStripEventArgs e)
    {
        e.Tab.PageView.Selected = true;
    }
 
    private void AddPageView(RadTab tab)
    {
        RadPageView pageView = new RadPageView();
        //I am using a value to determine the tab instead of using the text
        pageView.ID = "PV" + tab.Value;
        tab.PageViewID = pageView.ID;
        RadMultiPage1.PageViews.Add(pageView);
 
    }
 
    protected void RadMultiPage1_PageViewCreated(object sender, RadMultiPageEventArgs e)
    {
        //This is different I am loading one particular control and setting a property in it    
        //webproject1.Controls.PageViewGrid PVControl = new webproject1.Controls.PageViewGrid();
        //PVControl.PageViewID = Convert.ToInt32(e.PageView.ID.Replace("PV", ""));
        //PVControl.ID = e.PageView.ID + "_userControl";
 
        try {
 
                switch (e.PageView.ID)
                {
                    case "PV1":
                        HomeUserControl controlH = (HomeUserControl)Page.LoadControl("~/HomeUserControl.ascx");
 
                        controlH.StudyID = StudyID;
                        controlH.UserStudyRole = UserStudyRole;
                        controlH.StudyFieldsTable = StudyFieldsTable;
                        controlH.UseReport = UseReport;
                        controlH.UserID = UserID;
 
                        controlH.ID = e.PageView.ID + "_userControl";
 
                        e.PageView.Controls.Add(controlH);
                        break;
                    case "PV2":
                        UsersUserControl controlU = (UsersUserControl)Page.LoadControl("~/UsersUserControl.ascx");
 
                        controlU.ID = e.PageView.ID + "_userControl";
                        controlU.StudyID = StudyID;
 
                        e.PageView.Controls.Add(controlU);
                        break;
                    case "PV3":
                        StudySetupUserControl controlS = (StudySetupUserControl)Page.LoadControl("~/StudySetupUserControl.ascx");
 
                        controlS.ID = e.PageView.ID + "_userControl";
                        controlS.Sponsor = Sponsor;
                        controlS.Protocol = Protocol;
                        controlS.QcPercentage = QcPercentage;
                        controlS.StudyFieldsTable = StudyFieldsTable;
                        controlS.StudyID = StudyID;
                        controlS.UseReport = UseReport;
                        controlS.WhichEditForm = "StudyUsers";
                        controlS.StudyID = StudyID;
 
                        e.PageView.Controls.Add(controlS);
                        break;
                    case "PV4":
                        SSRSReportUserControl controlR = (SSRSReportUserControl)Page.LoadControl("~/SSRSReportUserControl.ascx");
 
                        controlR.ID = e.PageView.ID + "_userControl";
 
                        e.PageView.Controls.Add(controlR);
                        //Button myButton = (Button)controlR.FindControl("Button1");
                        //ReportViewer myRpt = (ReportViewer)controlR.FindControl("ReportViewer1");
                        ////Add the necessary AJAX setting programmatically
                        //RadAjaxManager1.AjaxSettings.AddAjaxSetting(myButton, myRpt);
 
                        break;
 
                    case "PV5":
                        QualityControlUserControl controlQ = (QualityControlUserControl)Page.LoadControl("~/QualityControlUserControl.ascx");
 
                        controlQ.ID = e.PageView.ID + "_userControl";
                        controlQ.Sponsor = Sponsor;
                        controlQ.Protocol = Protocol;
                        controlQ.StudyID = StudyID;
                        controlQ.QcPercentage = QcPercentage;
                        controlQ.UseReport = UseReport;
 
                        e.PageView.Controls.Add(controlQ);
                        break;
                }
 
            }
            catch (Exception ex) {
                string mydebug = ex.Message;
            }
       
    }
}
0
Phillip
Top achievements
Rank 1
answered on 09 Feb 2015, 10:25 PM
Below is the markup for the user control that is generating the error.

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="SSRSReportUserControl.ascx.cs" Inherits="SSRSReportUserControl" %>
 
<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
    Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %>
 
    <script type="text/javascript">
 
        function resize() {
            var height = getDocHeight();
            var elements = window.top.document.getElementsByTagName("div");
 
            for (var i = 0; i < elements.length; i++) {
                var containerPageViewID = "ReportsPage";
 
                if (elements[i].id.indexOf(containerPageViewID) > -1) {
                    elements[i].style.height = height + "px";
                    break;
                }
            }
        }
 
        if (window.addEventListener)
            window.addEventListener("load", resize, false);
        else if (window.attachEvent)
            window.attachEvent("onload", resize);
        else window.onload = resize;
 
        function getDocHeight() {
            var D = document;
            return Math.max(
            Math.max(D.body.scrollHeight, D.documentElement.scrollHeight),
            Math.max(D.body.offsetHeight, D.documentElement.offsetHeight),
            Math.max(D.body.clientHeight, D.documentElement.clientHeight)
        );
        }
     
</script>
    <style type="text/css">
      #content {
    float:right;
    width:85%;
    padding:10px;
    border:1px solid #000;
    }/* Sidebar */
  #sidebar {
 
    margin-top:10px;
     
    width:10%;
    margin-bottom:10px;
     
    float:left;
 
    color: #000;
     
     
    }
    #legend {
    position:relative;
    margin-top:10px;
 
    margin-bottom:10px;
 
    border:1px solid #000;
    color: #000;
 
    height:90px;
    }
  a
  {
      display: block;
  width: auto;
  height: auto;
 
  color: #000;
  text-decoration: none;
 
  }
 a:hover, .selected a {
  background-color: #369;
  background-position: right bottom;
  color: #fff;
   
}
ul {
  margin: 0;
  padding: 0;
  list-style-type: none;
  width:100%;
}
li {
    display: inline; /* :KLUDGE: Removes large gaps in IE/Win */
}
    </style>
 
    <div id="menu">
    </div>
    <div id="sidebar"><fieldset style="border:1px solid #000;"><legend>Select A Report</legend>
 <ul>
      <li><asp:LinkButton ID="lnkAuditTrail" runat="server" onclick="lnkAuditTrail_Click">Audit Trail Report</asp:LinkButton></li>
    <li><asp:LinkButton ID="lnkUserAudit" runat="server" onclick="lnkUserAudit_Click">User Audit Report</asp:LinkButton></li>
    <li><asp:LinkButton ID="lnkLoginAudit" runat="server" onclick="lnkLoginAudit_Click">Login Audit Report</asp:LinkButton></li>
    <li><asp:LinkButton ID="lnkStudyUserChange" runat="server" onclick="lnkStudyUserChangeAudit_Click">Change User Study Setup</asp:LinkButton></li>
    <li><asp:LinkButton ID="lnkStudyUser" runat="server" onclick="lnkStudyUserAddDelAudit_Click">Add/Remove User From Study</asp:LinkButton></li>
    </ul></fieldset>
    <fieldset id="legend"><legend>User Action</legend>
    <ul>
    <li>D = Delete</li><br />
    <li>I = Insert</li><br />
    <li>U = Update</li>
    </ul>
    </fieldset>
    </div>
     
    <div id ="content">
    <div id = "rptParams">
        <asp:Label ID="Label5"
            runat="server" Text="Select A Report From The Menu"></asp:Label>
        <asp:Panel ID="PanelParms" runat="server" Visible="false">
        <asp:Label ID="lblSponsor" runat="server" Text="Sponsor/Protocol:"></asp:Label><asp:DropDownList ID="ddlSponsor" Enabled="true" runat="server" Width=18.75em
                        DataSourceID="SponsorDataSource" DataTextField="SponsorText"
                        DataValueField="StudyID" ></asp:DropDownList><asp:Label ID="lblUser" runat="server" Text="User Name:"></asp:Label><asp:TextBox ID="txtUserName" runat="server"></asp:TextBox><telerik:RadDatePicker ID="RadDatePicker1" MinDate="2009/1/1" runat="server" DateInput-Label="Start Date:" Width="150px">
                         
                    </telerik:RadDatePicker>
 
                    <asp:RequiredFieldValidator runat="server" ID="RequiredFieldValidator1" ControlToValidate="RadDatePicker1"
 
                        ErrorMessage="Enter a date"></asp:RequiredFieldValidator><telerik:RadDatePicker ID="RadDatePicker2" MinDate="2009/1/1" runat="server" DateInput-Label="End Date:" Width="150px">
 
                    </telerik:RadDatePicker>
 
                    <asp:RequiredFieldValidator runat="server" ID="Requiredfieldvalidator2" ControlToValidate="Raddatepicker2"
 
                        ErrorMessage="Enter a date"></asp:RequiredFieldValidator><asp:CompareValidator ID="dateCompareValidator" runat="server" ControlToValidate="Raddatepicker2"
 
                        ControlToCompare="RadDatePicker1" Operator="GreaterThan" Type="Date" ErrorMessage="The second date must be after the first one.<br /><br />">
 
                    </asp:CompareValidator><asp:Button ID="Button1" runat="server" Text="Run Report" onclick="Button1_Click" />
            <br />
         <asp:Label ID="Label1" runat="server" Text="User Full Name:"></asp:Label>
             <asp:TextBox ID="txtUserFullName" runat="server"></asp:TextBox>
                 <asp:Label ID="Label4" runat="server" Text="Masking Code:"></asp:Label>
                     <asp:TextBox ID="txtMaskingCode" runat="server"></asp:TextBox>
                                         <asp:Label ID="Label8" runat="server" Text="Reader"></asp:Label>
                                             <asp:TextBox ID="txtReader" runat="server"></asp:TextBox>       
                             
                             
        </asp:Panel>
    </div>
 
        <div id="reportwrapper" style="height:100%; width:100%; float:right;"><asp:Panel ID="myPanel" runat=server></asp:Panel>
        <rsweb:ReportViewer ID="ReportViewer1" runat="server" Visible="false"
                AsyncRendering="False"
    Font-Names="Verdana" Font-Size="8pt" InteractiveDeviceInfos="(Collection)"
    WaitMessageFont-Names="Verdana"
    WaitMessageFont-Size="14pt"  BorderStyle="Double" Width="100%" Height="100%"
                OnReportError="TheReport_ReportError" onprerender="ReportViewer1_PreRender">
 
 
        </rsweb:ReportViewer>
        </div>
    <asp:ObjectDataSource ID="SponsorDataSource" runat="server"
            TypeName="ReportsDB"
            SelectMethod="GetSponsors">
        </asp:ObjectDataSource>
    <asp:ObjectDataSource ID="AuditReportDataSource" runat="server" OnSelecting="AuditReport_Selecting"
            TypeName="ReportsDB"
            SelectMethod="GetAuditReportData">
            <SelectParameters>
                <asp:Parameter Name="StartDate"
                Type="DateTime" />
                <asp:Parameter Name="EndDate"
                Type="DateTime" />
                <asp:Parameter Name="StudyID"
                Type="Int64" />
                <asp:Parameter Name="UserFullName"
                Type="String" />
                <asp:Parameter Name="MaskingCode"
                Type="String" />
                <asp:Parameter Name="Reader"
                Type="String" />
            </SelectParameters>
        </asp:ObjectDataSource>
        <asp:ObjectDataSource ID="UserChangeReportDataSource" runat="server" OnSelecting="UserReport_Selecting"
            TypeName="ReportsDB"
            SelectMethod="GetCommonReportData">
            <SelectParameters>
                <asp:Parameter Name="StartDate"
                Type="DateTime" />
                <asp:Parameter Name="EndDate"
                Type="DateTime" />
                <asp:Parameter Name="UserName"
                Type="String" />
            </SelectParameters>
        </asp:ObjectDataSource>
    <asp:ObjectDataSource ID="LoginReportDataSource" runat="server" OnSelecting="LoginReport_Selecting"
            TypeName="ReportsDB"
            SelectMethod="GetLoginReportData">
            <SelectParameters>
                <asp:Parameter Name="StartDate"
                Type="DateTime" />
                <asp:Parameter Name="EndDate"
                Type="DateTime" />
                <asp:Parameter Name="UserName"
                Type="String" />
            </SelectParameters>
        </asp:ObjectDataSource>
        <asp:ObjectDataSource ID="UserStudyChangeReportDataSource" runat="server" OnSelecting="UserStudyChangeReport_Selecting"
            TypeName="ReportsDB"
            SelectMethod="GetUserStudyChangeReportData">
            <SelectParameters>
                <asp:Parameter Name="StartDate"
                Type="DateTime" />
                <asp:Parameter Name="EndDate"
                Type="DateTime" />
                <asp:Parameter Name="StudyID"
                Type="Int64" />
            </SelectParameters>
        </asp:ObjectDataSource>
        <asp:ObjectDataSource ID="UserStudyReportDataSource" runat="server" OnSelecting="UserStudyChangeReport_Selecting"
            TypeName="ReportsDB"
            SelectMethod="GetUserStudyReportData">
            <SelectParameters>
                <asp:Parameter Name="StudyID"
                Type="Int64" />
            </SelectParameters>
        </asp:ObjectDataSource>
    </div>
0
Phillip
Top achievements
Rank 1
answered on 09 Feb 2015, 10:30 PM
Below is the code behind for the user control generating the error.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Microsoft.Reporting.WebForms;
using System.Data;
using System.Reflection;
 
public partial class SSRSReportUserControl : System.Web.UI.UserControl
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            //this.ReportViewer1.ShowReportBody = false;
 
        }
    }
 
    public void AuditReport_Selecting(object source, ObjectDataSourceSelectingEventArgs e)
    {
 
        if (string.IsNullOrEmpty(RadDatePicker1.SelectedDate.ToString()))
            e.InputParameters["StartDate"] = DateTime.MinValue;
        else
            e.InputParameters["StartDate"] = RadDatePicker1.SelectedDate;
        if (string.IsNullOrEmpty(RadDatePicker2.SelectedDate.ToString()))
            e.InputParameters["EndDate"] = DateTime.MinValue;
        else
            e.InputParameters["EndDate"] = RadDatePicker2.SelectedDate;
        e.InputParameters["StudyID"] = ddlSponsor.SelectedValue;
        e.InputParameters["UserFullName"] = txtUserFullName.Text;
        e.InputParameters["MaskingCode"] = txtMaskingCode.Text;
        e.InputParameters["Reader"] = txtReader.Text;
    }
 
    public void UserReport_Selecting(object source, ObjectDataSourceSelectingEventArgs e)
    {
 
 
        if (string.IsNullOrEmpty(RadDatePicker1.SelectedDate.ToString()))
            e.InputParameters["StartDate"] = DateTime.MinValue;
        else
            e.InputParameters["StartDate"] = RadDatePicker1.SelectedDate;
        if (string.IsNullOrEmpty(RadDatePicker2.SelectedDate.ToString()))
            e.InputParameters["EndDate"] = DateTime.MinValue;
        else
            e.InputParameters["EndDate"] = RadDatePicker2.SelectedDate;
        e.InputParameters["UserName"] = txtUserName.Text;
 
    }
 
    public void LoginReport_Selecting(object source, ObjectDataSourceSelectingEventArgs e)
    {
 
 
        if (string.IsNullOrEmpty(RadDatePicker1.SelectedDate.ToString()))
            e.InputParameters["StartDate"] = DateTime.MinValue;
        else
            e.InputParameters["StartDate"] = RadDatePicker1.SelectedDate;
        if (string.IsNullOrEmpty(RadDatePicker2.SelectedDate.ToString()))
            e.InputParameters["EndDate"] = DateTime.MinValue;
        else
            e.InputParameters["EndDate"] = RadDatePicker2.SelectedDate;
        e.InputParameters["UserName"] = txtUserName.Text;
 
    }
 
    public void UserStudyChangeReport_Selecting(object source, ObjectDataSourceSelectingEventArgs e)
    {
        e.InputParameters["StudyID"] = ddlSponsor.SelectedValue;
         
    }
 
    protected void lnkAuditTrail_Click(object sender, EventArgs e)
    {
        PanelParms.Visible = true;
        Label5.Visible = false;
        lblSponsor.Visible = true;
        ddlSponsor.Visible = true;
        lblUser.Visible = false;
        txtUserName.Visible = false;
 
        Label1.Visible = true;
        txtUserFullName.Visible = true;
        Label4.Visible = true;
        txtMaskingCode.Visible = true;
 
        Label8.Visible = true;
        txtReader.Visible = true;
 
        //this.ReportViewer1.Visible = false;
 
        ViewState["SelectedReport"] = "AuditTrail";
    }
 
 
    protected void lnkUserAudit_Click(object sender, EventArgs e)
    {
        PanelParms.Visible = true;
        Label5.Visible = false;
        lblSponsor.Visible = false;
        ddlSponsor.Visible = false;
        lblUser.Visible = true;
        txtUserName.Visible = true;
 
        Label1.Visible = false;
        txtUserFullName.Visible = false;
        Label4.Visible = false;
        txtMaskingCode.Visible = false;
 
        Label8.Visible = false;
        txtReader.Visible = false;
 
        //this.ReportViewer1.Visible = false;
        ViewState["SelectedReport"] = "User";
    }
    protected void lnkLoginAudit_Click(object sender, EventArgs e)
    {
        PanelParms.Visible = true;
        Label5.Visible = false;
        lblSponsor.Visible = false;
        ddlSponsor.Visible = false;
        lblUser.Visible = true;
        txtUserName.Visible = true;
 
        Label1.Visible = false;
        txtUserFullName.Visible = false;
        Label4.Visible = false;
        txtMaskingCode.Visible = false;
 
        Label8.Visible = false;
        txtReader.Visible = false;
 
        //this.ReportViewer1.Visible = false;
        ViewState["SelectedReport"] = "Login";
    }
 
    protected void lnkStudyUserChangeAudit_Click(object sender, EventArgs e)
    {
        PanelParms.Visible = true;
        Label5.Visible = false;
        lblSponsor.Visible = false;
        ddlSponsor.Visible = true;
        lblUser.Visible = false;
        txtUserName.Visible = false;
 
        Label1.Visible = false;
        txtUserFullName.Visible = false;
        Label4.Visible = false;
        txtMaskingCode.Visible = false;
 
        Label8.Visible = false;
        txtReader.Visible = false;
 
        //this.ReportViewer1.Visible = false;
        ViewState["SelectedReport"] = "StudyUserChange";
    }
 
    protected void lnkStudyUserAddDelAudit_Click(object sender, EventArgs e)
    {
        PanelParms.Visible = true;
        Label5.Visible = false;
        lblSponsor.Visible = false;
        ddlSponsor.Visible = true;
        lblUser.Visible = false;
        txtUserName.Visible = false;
 
        Label1.Visible = false;
        txtUserFullName.Visible = false;
        Label4.Visible = false;
        txtMaskingCode.Visible = false;
 
        Label8.Visible = false;
        txtReader.Visible = false;
 
        //this.ReportViewer1.Visible = false;
        ViewState["SelectedReport"] = "StudyUser";
    }
 
    protected void TheReport_ReportError(object sender, ReportErrorEventArgs e)
    {
        Response.Write(e.Exception.ToString());
        e.Handled = true;
    }
 
    protected void Button1_Click(object sender, EventArgs e)
    {
        try
        {
            DateTime startDate;
            DateTime endDate;
 
            this.ReportViewer1.Visible = true;
            this.ReportViewer1.Reset();
            this.ReportViewer1.ShowReportBody = true;
            this.ReportViewer1.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Local;
            ReportParameter[] parameters;
            switch (ViewState["SelectedReport"].ToString())
            {
                case "Login":
                    ReportViewer1.LocalReport.ReportPath = @"Reports\LoginAttempts.rdlc";
                    LoginReportDataSource.DataBind();
                    this.ReportViewer1.LocalReport.DataSources.Add(new ReportDataSource("DataSet1", LoginReportDataSource));
                    break;
 
                case "User":
                    ReportViewer1.LocalReport.ReportPath = @"Reports\UserChanges.rdlc";
                    UserChangeReportDataSource.DataBind();
                    this.ReportViewer1.LocalReport.DataSources.Add(new ReportDataSource("DataSet1", UserChangeReportDataSource));
                    break;
 
                case "AuditTrail":
                    //exportExcel();
                    parameters = new ReportParameter[6];
 
                    if (DateTime.TryParse(RadDatePicker1.SelectedDate.ToString(), out startDate))
                    {
                        if (DateTime.TryParse(RadDatePicker2.SelectedDate.ToString(), out endDate))
                        {
 
                        }
                        else
                        {
                            startDate = DateTime.MinValue;
                            endDate = DateTime.MinValue;
                        }
                    }
                    else
                    {
                        startDate = DateTime.MinValue;
                        endDate = DateTime.MinValue;
                    }
                    parameters[0] = new ReportParameter("StudyID", ddlSponsor.SelectedValue);
                    parameters[1] = new ReportParameter("StartDate", startDate.ToString());
                    parameters[2] = new ReportParameter("EndDate", endDate.ToString());
                    parameters[3] = new ReportParameter("UserFullName", txtUserFullName.Text);
                    parameters[4] = new ReportParameter("MaskingCode", txtMaskingCode.Text);
                    parameters[5] = new ReportParameter("Reader", txtReader.Text);
 
                    ReportViewer1.LocalReport.ReportPath = @"Reports\AuditTrail.rdlc";
 
                    ReportsDB myDAL2 = new ReportsDB();
                    DataTable myAuditData = myDAL2.GetAuditReportData(startDate, endDate, Int64.Parse(ddlSponsor.SelectedValue), txtUserFullName.Text, txtMaskingCode.Text, txtReader.Text);
                    ReportViewer1.LocalReport.SetParameters(parameters);
                    ReportViewer1.LocalReport.DataSources.Add(new ReportDataSource("DataSet1", myAuditData));
 
                    break;
                case "StudyUser":
 
                    parameters = new ReportParameter[3];
                    parameters[0] = new ReportParameter("StudyID", ddlSponsor.SelectedValue);
                    ReportViewer1.LocalReport.ReportPath = @"Reports\UsersAddOrRemovedFromStudy.rdlc";
 
                    if (DateTime.TryParse(RadDatePicker1.SelectedDate.ToString(), out startDate))
                    {
                        if (DateTime.TryParse(RadDatePicker2.SelectedDate.ToString(), out endDate))
                        {
 
                        }
                        else
                        {
                            startDate = DateTime.MinValue;
                            endDate = DateTime.MinValue;
                        }
                    }
                    else
                    {
                        startDate = DateTime.MinValue;
                        endDate = DateTime.MinValue;
                    }
                    parameters[1] = new ReportParameter("StartDate", startDate.ToString());
                    parameters[2] = new ReportParameter("EndDate", endDate.ToString());
                    ReportsDB myDAL3 = new ReportsDB();
                    DataTable myUserToStudy = myDAL3.GetUserStudyReportData(startDate, endDate, Int64.Parse(ddlSponsor.SelectedValue));
                    ReportViewer1.LocalReport.SetParameters(parameters);
                    ReportViewer1.LocalReport.DataSources.Add(new ReportDataSource("DataSet1", myUserToStudy));
 
                    break;
                case "StudyUserChange":
                    parameters = new ReportParameter[3];
                    parameters[0] = new ReportParameter("StudyID", ddlSponsor.SelectedValue);
                    ReportViewer1.LocalReport.ReportPath = @"Reports\UserChangesToStudy.rdlc";
 
                    if (DateTime.TryParse(RadDatePicker1.SelectedDate.ToString(), out startDate))
                    {
                        if (DateTime.TryParse(RadDatePicker2.SelectedDate.ToString(), out endDate))
                        {
 
                        }
                        else
                        {
                            startDate = DateTime.MinValue;
                            endDate = DateTime.MinValue;
                        }
                    }
                    else
                    {
                        startDate = DateTime.MinValue;
                        endDate = DateTime.MinValue;
                    }
                    parameters[1] = new ReportParameter("StartDate", startDate.ToString());
                    parameters[2] = new ReportParameter("EndDate", endDate.ToString());
                    ReportsDB myDAL = new ReportsDB();
                    DataTable myUserChangesToStudy = myDAL.GetUserStudyChangeReportData(startDate, endDate, Int64.Parse(ddlSponsor.SelectedValue));
                    ReportViewer1.LocalReport.SetParameters(parameters);
                    ReportViewer1.LocalReport.DataSources.Add(new ReportDataSource("DataSet1", myUserChangesToStudy));
                    break;
 
            }
 
            this.ReportViewer1.Visible = true;
            this.ReportViewer1.DataBind();
            this.ReportViewer1.LocalReport.Refresh();
        }
        catch (Exception ex)
        {
            Response.Write(ex.ToString());
 
        }
    }
 
    public void exportExcel()
    {
        try
        {
            DateTime startDate;
            DateTime endDate;
 
            ReportParameter[] parameters = new ReportParameter[6];
 
 
            if (DateTime.TryParse(RadDatePicker1.SelectedDate.ToString(), out startDate))
            {
                if (DateTime.TryParse(RadDatePicker2.SelectedDate.ToString(), out endDate))
                {
 
                }
                else
                {
                    startDate = DateTime.MinValue;
                    endDate = DateTime.MinValue;
                }
            }
            else
            {
                startDate = DateTime.MinValue;
                endDate = DateTime.MinValue;
            }
            parameters[0] = new ReportParameter("StudyID", ddlSponsor.SelectedValue);
            parameters[1] = new ReportParameter("StartDate", startDate.ToString());
            parameters[2] = new ReportParameter("EndDate", endDate.ToString());
 
            parameters[3] = new ReportParameter("UserFullName", txtUserFullName.Text);
            parameters[4] = new ReportParameter("MaskingCode", txtMaskingCode.Text);
            parameters[5] = new ReportParameter("Reader", txtReader.Text);
 
            Microsoft.Reporting.WebForms.ReportViewer myReportViewer = new Microsoft.Reporting.WebForms.ReportViewer();
            myReportViewer.ProcessingMode = ProcessingMode.Local;
            myReportViewer.LocalReport.ReportPath = @"Reports\AuditTrail.rdlc";
            myReportViewer.LocalReport.DataSources.Clear();
 
            ReportsDB myDAL2 = new ReportsDB();
            DataTable myAuditData = myDAL2.GetAuditReportData(startDate, endDate, Int64.Parse(ddlSponsor.SelectedValue), txtUserFullName.Text, txtMaskingCode.Text, txtReader.Text);
            myReportViewer.LocalReport.SetParameters(parameters);
            ReportDataSource reportDS = new ReportDataSource("DataSet1", myAuditData);
            myReportViewer.LocalReport.DataSources.Add(reportDS);
 
            myReportViewer.LocalReport.Refresh();
 
            Response.Clear();
 
            Warning[] warnings;
            string[] streams;
            string extension;
            string content;
            string encoding;
            byte[] b = myReportViewer.LocalReport.Render("EXCEL", null, out content, out encoding, out extension, out streams, out warnings);
 
            Response.AppendHeader("Content-Disposition", "attachment;filename=IncidentReport.xls");
 
            Response.OutputStream.Write(b, 0, b.Length);
            Response.ContentType = content;
            Response.End();
        }
        catch (Exception ex)
        {
            Response.Write(ex.Message.ToString());
        }
    }
 
    public void DisableUnwantedExportFormat(ReportViewer ReportViewerID, string strFormatName)
    {
 
        FieldInfo info;
 
        foreach (RenderingExtension extension in ReportViewerID.LocalReport.ListRenderingExtensions())
        {
 
            if (extension.Name == strFormatName)
            {
 
                info = extension.GetType().GetField("m_isVisible", BindingFlags.Instance | BindingFlags.NonPublic);
 
                info.SetValue(extension, false);
 
            }
 
 
 
        }
 
    }
 
    protected void ReportViewer1_PreRender(object sender, EventArgs e)
    {
        DisableUnwantedExportFormat((ReportViewer)sender, "WORD");
        DisableUnwantedExportFormat((ReportViewer)sender, "Excel");
    }
}
0
Maria Ilieva
Telerik team
answered on 12 Feb 2015, 03:25 PM
Hi Philip,

Try modifying your Ajax settings in the UserControl like this:

<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" DefaultLoadingPanelID="RadAjaxLoadingPanel1">
    <AjaxSettings>
        <telerik:AjaxSetting AjaxControlID="headerPanel">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="tabPanel"></telerik:AjaxUpdatedControl>
                <telerik:AjaxUpdatedControl ControlID="headerPanel"></telerik:AjaxUpdatedControl>
            </UpdatedControls>
        </telerik:AjaxSetting>
        <telerik:AjaxSetting AjaxControlID="tabPanel">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="tabPanel"></telerik:AjaxUpdatedControl>
            </UpdatedControls>
        </telerik:AjaxSetting>
    </AjaxSettings>
</telerik:RadAjaxManager>
 
<telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server"></telerik:RadAjaxLoadingPanel>
 
 
<h1>
    <asp:Literal runat="server" ID="LogoLiteral" Text="Imaging Table Editor"></asp:Literal>
</h1>
 
<asp:Panel ID="headerPanel" runat="server">
   ...................
</asp:Panel>
 
<asp:Panel runat="server" ID="tabPanel">
    <asp:Label runat="server" ID="lblNoAccess" Text=""></asp:Label>
    <telerik:RadTabStrip ID="RadTabStrip1"
        MultiPageID="RadMultiPage1" runat="server" SelectedIndex="0" OnTabClick="RadTabStrip1_TabClick">
    </telerik:RadTabStrip>
    <telerik:RadMultiPage ID="RadMultiPage1" runat="server" SelectedIndex="0" RenderSelectedPageOnly="true" OnPageViewCreated="RadMultiPage1_PageViewCreated">
    </telerik:RadMultiPage>
</asp:Panel>
 and see how it goes.

Regards,
Maria Ilieva
Telerik
 

Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.

 
0
Phillip
Top achievements
Rank 1
answered on 23 Feb 2015, 06:21 PM
The user control does not have any Ajax settings.  I added the lines to the default.aspx page that loads the user controls.  I still get the same error when I run a report.  "Sys.InvalidOperationException: Could not find UpdatePanel with ID 'PV4_userControl_ReportViewer1_ReportViewer'.  If it is being updated dynamically then it must be inside another UpdatePanel." 

Do you have any other suggestions?
0
Phillip
Top achievements
Rank 1
answered on 23 Feb 2015, 06:41 PM
I also tried only the ajax settings you stated on the default.aspx/hosting page.  I get the same error also.  Do you have any other suggestions.
0
Maria Ilieva
Telerik team
answered on 26 Feb 2015, 01:08 PM
Hello Phillip,

The most common reason for this error is in case nested Ajax settings appear in the application. Can you please revise all the Ajax settings in the application and see if you will be able to isolate some part of the code that is added in double ajaxification.

Regards,
Maria Ilieva
Telerik
 

Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.

 
Tags
Ajax
Asked by
Phillip
Top achievements
Rank 1
Answers by
Maria Ilieva
Telerik team
Phillip
Top achievements
Rank 1
Share this question
or