private void DisplayResults() { Business.ManagedItemSearch miSearch = new Kindred.Knect.ITAT.Business.ManagedItemSearch(); //If this is an 'admin viewer', then do not limit the search results based on security. Business.SearchResults results = miSearch.Search(_itatSystem.ID, _searchCriteria, UserRolesOrAdminViewer()); if (results.Count >= 500) { pnlError.Visible = true; litError.Text = "500 or more results were found. Only the first 500 results are shown."; } else if (results.Count == 0) { pnlError.Visible = true; litError.Text = "You are receiving no results from your Search as you may not have access to the data or there is no data that meets your criteria"; } else pnlError.Visible = false; results.SortBy(_searchResultColumns[grdResults.SortColumn], grdResults.SortAscending); if (results.Count > 500) results.RemoveRange(500, results.Count - 500); grdResults.DataSource = results; grdResults.DataBind(); }
private void DisplayResults(int sortColumn, bool ascending) { grdResults.Columns.Clear(); pnlError.Visible = false; if (_reportManagedItemSort == null) { try { _reportManagedItemSort = (Business.ReportManagedItemSort)Context.Items[Common.Names._CNTXT_ReportManagedItemSort]; } catch { } } if (_reportManagedItemSort == null) { //Came directly from ReportSearch.aspx ("Run") Business.ManagedItemSearch miSearch = new Kindred.Knect.ITAT.Business.ManagedItemSearch(); //If this is an 'admin viewer', then do not limit the search results based on security. List<string> roles = UserRolesOrAdminViewer(); Business.SearchResults _searchResults = miSearch.Search(_itatSystem.ID, _report.SearchCriteria, roles); _report.DefineTerms(_searchResults); _reportManagedItemSort = _report.GetReportManagedItemSort(_searchResults, roles); _reportManagedItemSort.Update(_report.ReportTerms, _report.PrimaryTerm, _report.SecondaryTerm, true); } DataSet dsResults = _reportManagedItemSort.GetDisplay(); //Add columns to grdResults if (_reportManagedItemSort != null) { if (_reportManagedItemSort.Count == 0) { pnlError.Visible = true; litError.Text = "You are receiving no results from your Report as you may not have access to the data or there is no data that meets your criteria"; } else { Business.ReportManagedItem rmi = _reportManagedItemSort[0]; foreach (Business.ReportTerm rptTerm in rmi.ReportTerms) { if (rptTerm.Visible ?? false) { BoundField fld = new BoundField(); fld.HeaderText = rptTerm.ColumnHeaderText(_itatSystem.ManagedItemName); fld.DataField = rptTerm.Name; grdResults.Columns.Add(fld); } } if (sortColumn >= 0) { dsResults.Tables[0].DefaultView.Sort = string.Format("{0} {1}", dsResults.Tables[0].Columns[sortColumn].ColumnName, ascending ? "ASC" : "DESC"); } grdResults.DataSource = dsResults.Tables[0].DefaultView; grdResults.DataBind(); } } }
protected override void OnLoad(EventArgs e) { base.OnLoad(e); ((StandardHeader)itatHeader).PageTitle = GetPageName(); int nSelectedRow = -1; if (!IsPostBack) { _reportManagedItemSort = null; try { //_CNTXT_ReportManagedItemSort is defined if from Report.aspx or could be defined if from ReportSearchResults.aspx _reportManagedItemSort = (Business.ReportManagedItemSort)Context.Items[Common.Names._CNTXT_ReportManagedItemSort]; } catch { } string selectedRow = Request.QueryString[Common.Names._QS_SELECTED_ROW]; int nTryParse; if (int.TryParse(selectedRow, out nTryParse)) { //From Report.aspx or from ReportSearchResults.aspx (in order to correctly display the checkboxes) nSelectedRow = nTryParse; _searchResults = (Business.SearchResults)Context.Items[Common.Names._CNTXT_SearchResults]; } else { if (_reportManagedItemSort == null) { //From ManagedItemSearch.aspx _report.SearchCriteria = (Business.SearchCriteria)Context.Items[Common.Names._CNTXT_SearchCriteria]; Business.ManagedItemSearch miSearch = new Kindred.Knect.ITAT.Business.ManagedItemSearch(); //If this is an 'admin viewer', then do not limit the search results based on security. _searchResults = miSearch.Search(_itatSystem.ID, _report.SearchCriteria, UserRolesOrAdminViewer()); _report.DefineTerms(_searchResults); } else { //From Report.aspx } } } else { //Update the selection criteria SetVisibility(true); //Note - the order is important here. If the same term is used for both, then //the second call will 'null out' the first. So if we call SetSecondary first, then //SetPrimary call will null out the SecondaryTerm. if (ddlSort1.Items.Count > 0 && ddlSort2.Items.Count > 0) { string[] sValues1 = ddlSort1.Items[ddlSort1.SelectedIndex].Value.Split(','); ; string[] sValues2 = ddlSort2.Items[ddlSort2.SelectedIndex].Value.Split(','); ; _report.SetSecondary(ddlSort2.Items[ddlSort2.SelectedIndex].Text, sValues2[1]); _report.SetPrimary(ddlSort1.Items[ddlSort1.SelectedIndex].Text, sValues1[1]); } } PopulateForm(nSelectedRow); }