2

出力コード javascript を持つ C# コードに基づく Dotnet Highchart を使用しています。 ドットネット ハイチャート

これは私のチャートがどのように見えるかです:

チャート

データベースのデータを使用して、LINQ クエリを使用してこのグラフ データを提供しています。

エンティティに「完了日」列があり、ユーザーが完了日の開始日と終了日を選択できるように、日付ピッカーで 2 つのテキストボックスを作成する必要があります。その後、ユーザーは送信ボタンをクリックできるようになり、グラフが更新されます。 2 つの日付間の統計を表示します。このための完全なLINQクエリがあります

これは、使用する LINQ クエリです。

public List<CoreValueAndAverageGrade> GetAverageGradeForAllCoreValues(DateTime startDate, DateTime endDate)
        {



            return db.CoreValue
                .Where(coreValue => coreValue.CoreValueQuestion
                    .Any(coreValueQuestion => coreValueQuestion.SubjectType.Ignored_Statistic == false))
                .Select(coreValue => new CoreValueAndAverageGrade
                {
                    CoreValue = coreValue,
                    AverageGrade = coreValue.CoreValueQuestion
                        .Where(coreValueQuestion => coreValueQuestion.SubjectType.Ignored_Statistic == false)
                        .Average(coreValueQuestion => coreValueQuestion.SelectedQuestions
                            .Where(selectedQuestion => selectedQuestion.GoalCardQuestionAnswer != null
                                && selectedQuestion.GoalCardQuestionAnswer.Grade.HasValue

                            && selectedQuestion.GoalCard.Completed_Date >= startDate
                            && selectedQuestion.GoalCard.Completed_Date <= endDate
                                )
                            .Average(selectedQuestion => selectedQuestion.GoalCardQuestionAnswer.Grade.Value))
                })
                .ToList();
        }

これは私のViewModelです

 public class OfficeStatisticNKIViewModel
    {
        public DateTime StartDate { get; set; }
        public DateTime EndDate { get; set; }
    }

私の GET アクション メソッドには、次のコードがあります。

public ActionResult OfficeStatistic()
{
    {
       OfficeStatisticNKIViewModel model = new OfficeStatisticNKIViewModel();
       model.EndDate = DateTime.Now;
       model.StartDate = DateTime.Now;
        var averageGrades = OfficeStatisticRepository.GetAverageGradeForAllCoreValues(model.StartDate, model.EndDate);

        var dataItems = (averageGrades.Select(averageGrade => averageGrade.AverageGrade).ToArray());
        Data data = new Data(
            dataItems.Select(y => new Point {Color = GetBarColour(y), Y = y}).ToArray());


        Highcharts chart1 = new Highcharts("Chart")
         .SetXAxis(new XAxis { Categories = averageGrades.Select(averageGrade => averageGrade.CoreValue.Name).ToArray() })
         .SetYAxis(new YAxis { Min = 0, Max = 10, TickInterval = 1, Title = new YAxisTitle { Text = "Betygskalan" } })
         .SetSeries(new Series {  Data = data, Name = "Snittbetyg" })
         .SetLegend(new Legend { Enabled = false })
         .SetTitle(new Title { Text = "Örebro Statistik", })
         .InitChart(new Chart { DefaultSeriesType = ChartTypes.Column });


        return View(new Container(new[] { chart1 }));

    }

問題は、ポストアクションメソッドを実行する方法がわからないことです.チャートは新しい統計で更新する必要があります.何らかの種類のajaxが必要ですか、それともサーバー側でこれを行うことができますか?

どんな種類の助けやヒントも大歓迎です!

前もって感謝します!

4

1 に答える 1

0

http://dotnethighcharts.codeplex.com/discussions/350721/

于 2012-07-31T20:45:13.793 に答える