//RESULTS HANDLING ************************************************************************************
        private void PopulateResultsGrid()
        {
            try
            {
                //display metrics grid
                pnlMetrics.Visible = grdMetrics.Rows.Count > 0 || ddlEntryType.SelectedValue == "H" || ddlEntryType.SelectedValue == "T";

                //allow edit for some (last column)
                grdResults.Columns[grdResults.Columns.Count - 1].Visible = btnSave.Visible;

                //taxon counts display
                grdResults.Columns[2].Visible  = ddlEntryType.SelectedValue == "T";
                grdResults.Columns[14].Visible = ddlEntryType.SelectedValue == "T";
                grdResults.Columns[15].Visible = ddlEntryType.SelectedValue == "T";


                grdResults.ShowFooter = true;
                grdResults.DataSource = db_WQX.GetT_WQX_RESULT(Session["ActivityIDX"].ConvertOrDefault <int>());
                grdResults.DataBind();

                //if there is no data, then fill in an empty row and hide the footer (stupid work around)
                if (grdResults.Rows.Count == 0)
                {
                    List <T_WQX_RESULT> rows = new List <T_WQX_RESULT>();
                    T_WQX_RESULT        row  = new T_WQX_RESULT();
                    row.ACTIVITY_IDX    = Session["ActivityIDX"].ConvertOrDefault <int>();
                    row.CHAR_NAME       = "";
                    row.DETECTION_LIMIT = "";
                    row.RESULT_MSR      = "";
                    row.RESULT_MSR_UNIT = "";
                    rows.Add(row);

                    grdResults.ShowFooter = false;
                    grdResults.DataSource = rows;
                    grdResults.DataBind();
                }
            }
            catch
            {
                lblMsg.Text = "Error displaying results.";
            }
        }
        //population of drop-downs for the currently selected row
        protected void grdResults_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow &&
                ((e.Row.RowState & DataControlRowState.Edit) == DataControlRowState.Edit))
            {
                //populate more modal
                Utils.BindList(ddlLabName, dsLabName, "LAB_IDX", "LAB_NAME");
                Utils.BindList(ddlPrepMethod, dsPrepMethod, "SAMP_PREP_IDX", "SAMP_PREP_METHOD_ID");

                T_WQX_RESULT r = db_WQX.GetT_WQX_RESULT_ByIDX(grdResults.DataKeys[e.Row.RowIndex].Values[0].ConvertOrDefault <int>());
                if (r != null)
                {
                    ddlLabName.SelectedValue    = r.LAB_IDX.ToStringNullSafe();
                    ddlPrepMethod.SelectedValue = r.LAB_SAMP_PREP_IDX.ToStringNullSafe();
                    txtPrepStartDate.Text       = r.LAB_SAMP_PREP_START_DT.ToStringNullSafe();
                    txtDilution.Text            = r.DILUTION_FACTOR.ToStringNullSafe();
                }

                //Characteristic
                DropDownList d1 = (DropDownList)e.Row.FindControl("ddlChar");
                dsChar.SelectParameters["RBPInd"].DefaultValue = (ddlEntryType.SelectedValue == "H" ? "true" : "false");
                PopulateDropDown(d1, dsChar, grdResults.DataKeys[e.Row.RowIndex].Values[1].ToString(), "CHAR_NAME", "CHAR_NAME");
                d1.Focus();

                //Taxa
                int col = GetColumnIndexByName(grdResults, "Taxonomy");
                if (grdResults.Columns[col].Visible)
                {
                    PopulateDropDown((DropDownList)e.Row.FindControl("ddlTaxa"), dsTaxa, grdResults.DataKeys[e.Row.RowIndex].Values[1].ToStringNullSafe(), "VALUE", "TEXT");
                }

                //Unit
                dsRefData.SelectParameters["tABLE"].DefaultValue = "MeasureUnit";
                PopulateDropDown((DropDownList)e.Row.FindControl("ddlUnit"), dsRefData, grdResults.DataKeys[e.Row.RowIndex].Values[2].ToStringNullSafe(), "VALUE", "VALUE");

                //Anal Method
                col = GetColumnIndexByName(grdResults, "Analytical Method");
                if (grdResults.Columns[col].Visible)
                {
                    PopulateDropDown((DropDownList)e.Row.FindControl("ddlAnalMethod"), dsAnalMethod, grdResults.DataKeys[e.Row.RowIndex].Values[3].ToStringNullSafe(), "ANALYTIC_METHOD_IDX", "AnalMethodDisplayName");
                }

                //Samp Fraction
                dsRefData.SelectParameters["tABLE"].DefaultValue = "ResultSampleFraction";
                PopulateDropDown((DropDownList)e.Row.FindControl("ddlSampFraction"), dsRefData, grdResults.DataKeys[e.Row.RowIndex].Values[4].ToStringNullSafe(), "VALUE", "VALUE");

                //value type
                dsRefData.SelectParameters["tABLE"].DefaultValue = "ResultValueType";
                PopulateDropDown((DropDownList)e.Row.FindControl("ddlResultValueType"), dsRefData, grdResults.DataKeys[e.Row.RowIndex].Values[5].ToStringNullSafe(), "VALUE", "VALUE");

                //result status
                dsRefData.SelectParameters["tABLE"].DefaultValue = "ResultStatus";
                PopulateDropDown((DropDownList)e.Row.FindControl("ddlResultStatus"), dsRefData, grdResults.DataKeys[e.Row.RowIndex].Values[6].ToStringNullSafe(), "VALUE", "VALUE");


                //Bio Intent
                col = GetColumnIndexByName(grdResults, "Biological Intent");
                if (grdResults.Columns[col].Visible)
                {
                    dsRefData.SelectParameters["tABLE"].DefaultValue = "BiologicalIntent";
                    PopulateDropDown((DropDownList)e.Row.FindControl("ddlBioIntent"), dsRefData, grdResults.DataKeys[e.Row.RowIndex].Values[7].ToStringNullSafe(), "VALUE", "VALUE");
                }


                //Bio Intent
                col = GetColumnIndexByName(grdResults, "Frequency Class");
                if (grdResults.Columns[col].Visible)
                {
                    dsRefData.SelectParameters["tABLE"].DefaultValue = "FrequencyClassDescriptor";
                    PopulateDropDown((DropDownList)e.Row.FindControl("ddlFreqClass"), dsRefData, grdResults.DataKeys[e.Row.RowIndex].Values[8].ToStringNullSafe(), "VALUE", "VALUE");
                }
            }

            if (e.Row.RowType == DataControlRowType.Footer)
            {
                //Characteristic
                dsChar.SelectParameters["RBPInd"].DefaultValue = (ddlEntryType.SelectedValue == "H" ? "true" : "false");
                PopulateDropDown((DropDownList)e.Row.FindControl("ddlNewChar"), dsChar, null, "CHAR_NAME", "CHAR_NAME");

                //Taxa
                int col = GetColumnIndexByName(grdResults, "Taxonomy");
                if (grdResults.Columns[col].Visible)
                {
                    PopulateDropDown((DropDownList)e.Row.FindControl("ddlNewTaxa"), dsTaxa, null, "VALUE", "TEXT");
                }

                //Unit
                dsRefData.SelectParameters["tABLE"].DefaultValue = "MeasureUnit";
                PopulateDropDown((DropDownList)e.Row.FindControl("ddlNewUnit"), dsRefData, null, "VALUE", "VALUE");

                //Anal Method
                PopulateDropDown((DropDownList)e.Row.FindControl("ddlNewAnalMethod"), dsAnalMethod, null, "ANALYTIC_METHOD_IDX", "AnalMethodDisplayName");

                //Samp Fraction
                dsRefData.SelectParameters["tABLE"].DefaultValue = "ResultSampleFraction";
                PopulateDropDown((DropDownList)e.Row.FindControl("ddlNewSampFraction"), dsRefData, null, "VALUE", "VALUE");

                //value type
                dsRefData.SelectParameters["tABLE"].DefaultValue = "ResultValueType";
                PopulateDropDown((DropDownList)e.Row.FindControl("ddlNewResultValueType"), dsRefData, null, "VALUE", "VALUE");

                //result status
                dsRefData.SelectParameters["tABLE"].DefaultValue = "ResultStatus";
                PopulateDropDown((DropDownList)e.Row.FindControl("ddlNewResultStatus"), dsRefData, null, "VALUE", "VALUE");


                //Bio Intent
                col = GetColumnIndexByName(grdResults, "Biological Intent");
                if (grdResults.Columns[col].Visible)
                {
                    dsRefData.SelectParameters["tABLE"].DefaultValue = "BiologicalIntent";
                    PopulateDropDown((DropDownList)e.Row.FindControl("ddlNewBioIntent"), dsRefData, null, "VALUE", "VALUE");
                }

                //Frequency Class
                col = GetColumnIndexByName(grdResults, "Frequency Class");
                if (grdResults.Columns[col].Visible)
                {
                    dsRefData.SelectParameters["tABLE"].DefaultValue = "FrequencyClassDescriptor";
                    PopulateDropDown((DropDownList)e.Row.FindControl("ddlNewFreqClass"), dsRefData, null, "VALUE", "VALUE");
                }
            }
        }