private ProjectCostingSheetsNavigatorTDS SubmitSearch()
        {
            ProjectCostingSheetsNavigatorTDS projectCostingSheetsNavigatorTDS = new ProjectCostingSheetsNavigatorTDS();
            // ... Load data
            ProjectCostingSheetsNavigator projectCostingSheetsNavigator = new ProjectCostingSheetsNavigator(projectCostingSheetsNavigatorTDS);
            projectCostingSheetsNavigator.LoadByProjectId(Int32.Parse(hdfProjectId.Value.ToString()), Int32.Parse(hdfCompanyId.Value.ToString()));

            ProjectCombinedCostingSheetsNavigator projectCombinedCostingSheetsNavigator = new ProjectCombinedCostingSheetsNavigator(projectCostingSheetsNavigatorTDS);
            projectCombinedCostingSheetsNavigator.LoadByClientId(Int32.Parse(hdfClientId.Value.ToString()), Int32.Parse(hdfCompanyId.Value.ToString()));

            return (ProjectCostingSheetsNavigatorTDS)projectCostingSheetsNavigatorTDS;
        }
 /// <summary>
 /// InitData
 /// </summary>
 protected override void InitData()
 {
     _data = new ProjectCostingSheetsNavigatorTDS();
 }
        // ////////////////////////////////////////////////////////////////////////
        // EVENTS
        //
        protected void Page_Load(object sender, EventArgs e)
        {
            // Register client scripts
            this.RegisterClientScripts();

            if (!IsPostBack)
            {
                // Security check
                if (!Convert.ToBoolean(Session["sgLFS_PROJECTS_COSTINGSHEETS_ADMIN"]))
                {
                    if (!Convert.ToBoolean(Session["sgLFS_PROJECTS_COSTINGSHEETS_VIEW"]))
                    {
                        Response.Redirect("./../../error_page.aspx?error=" + "You are not authorized to view this page. Contact your system administrator.");
                    }
                }

                // Validate query string
                if (Request.QueryString["source_page"] == null)
                {
                    Response.Redirect("./../../error_page.aspx?error=" + "Invalid query string in project_costing_sheets_navigator.aspx");
                }

                // Tag page
                hdfCompanyId.Value = Session["companyID"].ToString();
                hdfProjectId.Value = Request.QueryString["project_id"];
                hdfDataChanged.Value = Request.QueryString["data_changed"];
                hdfDataChangedMessage.Value = "Changes made to this project will not be saved.";

                ViewState["state"] = Request.QueryString["state"];
                ViewState["active_tab"] = Request.QueryString["active_tab"];
                ViewState["origin"] = Request.QueryString["origin"];
                ViewState["update"] = Request.QueryString["update"];

                projectTDS = (ProjectTDS)Session["lfsProjectTDS"];

                // Prepare initial data
                //lblResults.Visible = false;

                // ... for project
                int currentProjectId = Int32.Parse(hdfProjectId.Value.ToString());
                ProjectGateway projectGateway = new ProjectGateway();
                projectGateway.LoadByProjectId(currentProjectId);
                string name = projectGateway.GetName(currentProjectId);
                if (name.Length > 23) name = name.Substring(0, 20) + "...";
                lblTitleProjectName.Text = name + " (" + projectGateway.GetProjectNumber(currentProjectId) + ")";

                // ... for client
                int companyId = Int32.Parse(hdfCompanyId.Value);
                int currentCompanyId = projectGateway.GetClientID(Int32.Parse(hdfProjectId.Value.ToString()));
                CompaniesGateway companiesGateway = new CompaniesGateway();
                companiesGateway.LoadAllByCompaniesId(currentCompanyId, companyId);
                lblTitleClientName.Text = "Client: " + companiesGateway.GetName(currentCompanyId);

                hdfClientId.Value = projectGateway.GetClientID(int.Parse(hdfProjectId.Value)).ToString();

                // Store navigator state at projects navigator
                StoreNavigatorState();

                // If coming from
                // ... project_summary.aspx, project_edit.aspx, project_sections_navigator.aspx or project_sections_navigator2.aspx
                if ((Request.QueryString["source_page"] == "project_summary.aspx") || (Request.QueryString["source_page"] == "project_edit.aspx") || (Request.QueryString["source_page"] == "project_sections_navigator.aspx") || (Request.QueryString["source_page"] == "project_sections_navigator2.aspx"))
                {
                    projectCostingSheetsNavigatorTDS = new ProjectCostingSheetsNavigatorTDS();

                    // ... Search data with updates
                    projectCostingSheetsNavigatorTDS = SubmitSearch();

                    // ... Store datasets
                    Session["projectCostingSheetsNavigatorTDS"] = projectCostingSheetsNavigatorTDS;
                }

                // ... project_costing_sheets_edit.aspx, project_costing_sheets_summary.aspx or project_costing_sheets_delete.aspx
                if ((Request.QueryString["source_page"] == "project_costing_sheets_edit.aspx") || (Request.QueryString["source_page"] == "project_costing_sheets_summary.aspx") || (Request.QueryString["source_page"] == "project_costing_sheets_delete.aspx") || (Request.QueryString["source_page"] == "project_combined_costing_sheets_edit.aspx") || (Request.QueryString["source_page"] == "project_combined_costing_sheets_summary.aspx") || (Request.QueryString["source_page"] == "project_combined_costing_sheets_delete.aspx"))
                {
                    if (Request.QueryString["update"] == "no")
                    {
                        projectCostingSheetsNavigatorTDS = (ProjectCostingSheetsNavigatorTDS)Session["projectCostingSheetsNavigatorTDS"];
                    }
                    else
                    {
                        // ... Delete store data
                        Session.Contents.Remove("projectCostingSheetsNavigatorTDS");

                        projectCostingSheetsNavigatorTDS = SubmitSearch();

                        // ... store datasets
                        Session["projectCostingSheetsNavigatorTDS"] = projectCostingSheetsNavigatorTDS;
                    }
                }

                // For the grid
                grdCostingSheetsNavigator.DataSource = projectCostingSheetsNavigatorTDS.ProjectCostingSheetsNavigator;
                grdCostingSheetsNavigator.DataBind();

                grdCombinedCostingSheetsNavigator.DataSource = projectCostingSheetsNavigatorTDS.ProjectCombinedCostingSheetsNavigator;
                grdCombinedCostingSheetsNavigator.DataBind();

                //lblResults.Visible = false;

                // ... For the total rows
                if (projectCostingSheetsNavigatorTDS.ProjectCostingSheetsNavigator.Rows.Count > 0)
                {
                    lblTotalRows.Text = "Total Rows: " + projectCostingSheetsNavigatorTDS.ProjectCostingSheetsNavigator.Rows.Count;
                    lblTotalRows.Visible = true;
                    //lblResults.Visible = true;
                    btnOpen.Visible = true;
                    btnEdit.Visible = true;
                    btnDelete.Visible = true;
                    ddlAction.Visible = true;
                    pnlHorizontalRule.Visible = true;
                    lblCostingSheetsTitle.Visible = true;
                }
                else
                {
                    lblTotalRows.Visible = false;
                    btnOpen.Visible = false;
                    btnEdit.Visible = false;
                    btnDelete.Visible = false;
                    ddlAction.Visible = false;
                    pnlHorizontalRule.Visible = false;
                    lblCostingSheetsTitle.Visible = false;
                }

                // ... For the total rows
                if (projectCostingSheetsNavigatorTDS.ProjectCombinedCostingSheetsNavigator.Rows.Count > 0)
                {
                    //lblResults.Visible = true;
                    lblCombinedCostingSheetsTotalRows.Text = "Total Rows: " + projectCostingSheetsNavigatorTDS.ProjectCombinedCostingSheetsNavigator.Rows.Count;
                    lblCombinedCostingSheetsTotalRows.Visible = true;
                    lblCombinedCostingSheetsTitle.Visible = true;
                    lblCombinedCostingSheetsTotalRows.Visible = true;
                    btnOpenCombinedCostingSheet.Visible = true;
                    btnEditCombinedCostingSheet.Visible = true;
                    btnDeleteCombinedCostingSheet.Visible = true;
                    pnlHorizontalRuleCombinedCostingSheet.Visible = true;
                    ddlActionCombinedCostingSheet.Visible = true;
                }
                else
                {
                    lblCombinedCostingSheetsTotalRows.Visible = false;
                    lblCombinedCostingSheetsTitle.Visible = false;
                    lblCombinedCostingSheetsTotalRows.Visible = false;
                    btnOpenCombinedCostingSheet.Visible = false;
                    btnEditCombinedCostingSheet.Visible = false;
                    btnDeleteCombinedCostingSheet.Visible = false;
                    pnlHorizontalRuleCombinedCostingSheet.Visible = false;
                    ddlActionCombinedCostingSheet.Visible = false;
                }
            }
            else
            {
                // Restore TDS
                projectTDS = (ProjectTDS)Session["lfsProjectTDS"];
                projectCostingSheetsNavigatorTDS = (ProjectCostingSheetsNavigatorTDS)Session["projectCostingSheetsNavigatorTDS"];

                // ... for project
                int currentProjectId = Int32.Parse(hdfProjectId.Value.ToString());
                ProjectGateway projectGateway = new ProjectGateway();
                projectGateway.LoadByProjectId(currentProjectId);
                string name = projectGateway.GetName(currentProjectId);
                if (name.Length > 23) name = name.Substring(0, 20) + "...";
                lblTitleProjectName.Text = name + " (" + projectGateway.GetProjectNumber(currentProjectId) + ")";

                // ... for client
                int companyId = Int32.Parse(hdfCompanyId.Value);
                int currentClientId = projectGateway.GetClientID(Int32.Parse(hdfProjectId.Value.ToString()));
                CompaniesGateway companiesGateway = new CompaniesGateway();
                companiesGateway.LoadAllByCompaniesId(currentClientId, companyId);
                lblTitleClientName.Text = "Client: " + companiesGateway.GetName(currentClientId);

                // ... For the total rows
                if (projectCostingSheetsNavigatorTDS.ProjectCostingSheetsNavigator.Rows.Count > 0)
                {
                    lblTotalRows.Text = "Total Rows: " + projectCostingSheetsNavigatorTDS.ProjectCostingSheetsNavigator.Rows.Count;
                    lblTotalRows.Visible = true;
                    //lblResults.Visible = true;
                    btnOpen.Visible = true;
                    btnEdit.Visible = true;
                    btnDelete.Visible = true;
                    ddlAction.Visible = true;
                    pnlHorizontalRule.Visible = true;
                    lblCostingSheetsTitle.Visible = true;
                }
                else
                {
                    lblTotalRows.Visible = false;
                    btnOpen.Visible = false;
                    btnEdit.Visible = false;
                    btnDelete.Visible = false;
                    ddlAction.Visible = false;
                    pnlHorizontalRule.Visible = false;
                    lblCostingSheetsTitle.Visible = false;
                }

                // ... For the total rows
                if (projectCostingSheetsNavigatorTDS.ProjectCombinedCostingSheetsNavigator.Rows.Count > 0)
                {
                    //lblResults.Visible = true;
                    lblCombinedCostingSheetsTotalRows.Text = "Total Rows: " + projectCostingSheetsNavigatorTDS.ProjectCombinedCostingSheetsNavigator.Rows.Count;
                    lblCombinedCostingSheetsTotalRows.Visible = true;
                    lblCombinedCostingSheetsTitle.Visible = true;
                    lblCombinedCostingSheetsTotalRows.Visible = true;
                    btnOpenCombinedCostingSheet.Visible = true;
                    btnEditCombinedCostingSheet.Visible = true;
                    btnDeleteCombinedCostingSheet.Visible = true;
                    pnlHorizontalRuleCombinedCostingSheet.Visible = true;
                    ddlActionCombinedCostingSheet.Visible = true;
                }
                else
                {
                    lblCombinedCostingSheetsTotalRows.Visible = false;
                    lblCombinedCostingSheetsTitle.Visible = false;
                    lblCombinedCostingSheetsTotalRows.Visible = false;
                    btnOpenCombinedCostingSheet.Visible = false;
                    btnEditCombinedCostingSheet.Visible = false;
                    btnDeleteCombinedCostingSheet.Visible = false;
                    pnlHorizontalRuleCombinedCostingSheet.Visible = false;
                    ddlActionCombinedCostingSheet.Visible = false;
                }
            }
        }