-1

そこで、私が何を扱っているかを理解してもらうために、ドロップダウン ボックスを 2 つ用意しました。最初のドロップダウン ボックスには、4 つのアプリケーションのリストがあります。2 番目のドロップダウン ボックスは、最初のドロップダウン ボックスでの選択内容に応じて動的に変化します。2 番目のドロップダウン ボックスに各選択のグラフがあります。全部で 16 個のチャートがあります。2 番目の選択を変更するたびに、一度に 1 つのグラフしか表示されないようにグラフが変更されます。私はif elseステートメントを使用していますが、追いつくのが難しくなっています。また、各チャートで切り替えなければならないラベルがあるため、制御不能になります。これは、else if ステートメントの 1 つの小さな例です。

else if (ddlApplication.SelectedItem.Text == "Rapp" && ddlTests.SelectedItem.Text ==   "Total Test Runs")
        {
            string query = string.Format("select  TestName,Count (TestName) AS Counts  from VExecutionGlobalHistory where TestTypeID = 2 group by TestName", ddlTests.SelectedItem.Value);
            DataTable dt = GetData(query);

            //Loop and add each datatable row to the Pie Chart Values
            foreach (DataRow row in dt.Rows)
            {
                SpecificTestsRapp.PieChartValues.Add(new AjaxControlToolkit.PieChartValue
                {
                    Category = row["TestName"].ToString(),
                    Data = Convert.ToDecimal(row["Counts"])
                });
            }

            string SpecificTestsRappS = null;
            string sql2 = "select  Count (TestName) AS Counts from  VExecutionGlobalHistory where TestTypeID = 2 ";
            string connString2 = ";Initial  Catalog=Performance;User ID=;Password=";
            using (SqlConnection conn = new SqlConnection(connString2))
            {
                conn.Open();
                using (SqlCommand command = new SqlCommand(sql2, conn))
                {
                    SqlDataReader reader = command.ExecuteReader();
                    while (reader.Read())
                    {
                        SpecificTestsRappS = reader[0].ToString();
                        lblTotalTestsRapp.Text = SpecificTestsRappS;


                        break;
                    }
                }
                conn.Close();
            }

            SpecificTestsRapp.ChartTitle = "Total Tests Run";

            TotalTestsWeb6.Visible = false;
            HoursWeb6.Visible = false;
            TotalValidationsWeb6.Visible = false;
            CostComparisonWeb6.Visible = false;
            SpecificTestsWeb6.Visible = false;
            TotalTestsRapp.Visible = false;
            TotalValidationsRapp.Visible = false;
            SpecificTestsRapp.Visible = true;
            HoursRapp.Visible = false;
            IONChart.Visible = false;
            CostComparisonRapp.Visible = false;

            txtTotalHoursRapp.Visible = false;
            lblTotalHoursRapp.Visible = false;
            txtTotalHoursRappA.Visible = false;
            lblTotalHoursRappA.Visible = false;

            txtTotalCostRappM.Visible = false;
            lblTotalCostRappM.Visible = false;
            txtTotalCostRappA.Visible = false;
            lblTotalCostRappA.Visible = false;

            txtTotalTestsRapp.Visible = true;
            lblTotalTestsRapp.Visible = true;

            lblTotalValidationsRapp.Visible = false;
            txtTotalValidationsRapp.Visible = false;

            lblTotalValidations.Visible = false;
            txtTotalValidations.Visible = false;

            lblTotalTests.Visible = false;
            txtTotalTests.Visible = false;

            txtTotalHours.Visible = false;
            lblTotalHours.Visible = false;

            txtTotalHoursA.Visible = false;
            lblTotalHoursA.Visible = false;

            txtTotalCostA.Visible = false;
            lblTotalCostA.Visible = false;

            txtTotalCostM.Visible = false;
            lblTotalCostM.Visible = false;

            Label1.Visible = false;
            Label2.Visible = false;


        }

技術的には、16 個のチャートがあるため、完了したらこれらのうち 16 個が必要になります。これを行うには、より効率的な方法が必要です。助言がありますか?

4

1 に答える 1