Добавьте динамические диаграммы с помощью УПРАВЛЕНИЯ ДИАГРАММОЙ ASP.NET, c#

На самом деле, в процессе поиска свойства launchedFromShortcut на github я понял, что оно не используется в Javascript. Поэтому используется только флаг , чтобы сообщить, было ли приложение запущено с ярлыка, и передача его в RNN RNNReactRootViewCreator кажется ненужной.

Убрано, что необходимость интеграции оказалась довольно простой, нам нужно только добавить launchedFromShortcut = [launchOptions objectForKey:UIApplicationLaunchOptionsUserActivityDictionaryKey] != nil; в didFinishLaunchingWithOptions и проверить ее значение в continueUserActivity.

AppDelegate.m будет выглядеть следующим образом:


#import "AppDelegate.h"
#import 
#import 
#import 
#import 

@implementation AppDelegate
BOOL launchedFromShortcut;


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

  launchedFromShortcut = [launchOptions objectForKey:UIApplicationLaunchOptionsUserActivityDictionaryKey] != nil;
[ReactNativeNavigation bootstrap:jsCodeLocation launchOptions:launchOptions];

    //    
    // Regular RNN bootstrap code omitted for brevity sake
    //    

  return YES;
}


- (BOOL)application:(UIApplication *)application
continueUserActivity:(NSUserActivity *)userActivity
 restorationHandler:(void (^)(NSArray> *restorableObjects))restorationHandler
{

    if (launchedFromShortcut) {
        ShortcutsModule.initialUserActivity = userActivity;
        launchedFromShortcut = NO;
    }

    [ShortcutsModule onShortcutReceivedWithUserActivity:userActivity];
    return YES;
}

@end

5
задан 2 December 2008 в 19:03
поделиться

2 ответа

Хорошо, таким образом, я могу иметь преувеличенный это, но я пытался сделать это довольно динамичным. Да, названия списка немного нечетны, но я использовал другой мой пример для создания этого.

 protected void Page_Load(object sender, EventArgs e)
 {
   Bench[] benchList;
   FoodIntake[] foodIntakeList;
   Panel panelChartHolder;

   panelChartHolder = new Panel();
   Controls.Add(panelChartHolder);

   benchList = Bench.GetAll();
   AddNewCharts(benchList, panelChartHolder, 
     GetBenchXValue, GetBenchYValue);

   foodIntakeList = FoodIntake.GetAll();
   AddNewCharts(foodIntakeList, panelChartHolder, 
     GetFoodIntakeXValue, GetFoodIntakeYValue);
  }

Хорошо, таким образом, эта первая часть проста. Создайте панель для содержания диаграмм, Вы добавляете, получаете списки, которые Вы хотите представленный диаграммами (Для этого примера, они, оказывается, работают с Linq к Sql), и назовите метод для составления таблиц.

  private void AddNewCharts<T>(T[] listToAdd, Panel panelToAddTo, 
     Func<T, DateTime> xMethod, Func<T, Int32> yMethod)
  {

    ChartArea mainArea;
    Chart mainChart;
    Series mainSeries;

    mainChart = new Chart();
    mainSeries = new Series("MainSeries");

    for (Int32 loopCounter = 0; loopCounter < listToAdd.Length; loopCounter++)
    {
      mainSeries.Points.AddXY(xMethod(listToAdd[loopCounter]), 
        yMethod(listToAdd[loopCounter]));
    }

    mainChart.Series.Add(mainSeries);
    mainArea = new ChartArea("MainArea");
    mainChart.ChartAreas.Add(mainArea);

    panelToAddTo.Controls.Add(mainChart);
  }

Как Вы видите, я просто составил новую таблицу, добавил ряд к нему и добавил ChartArea к нему. Следующая часть является в значительной степени просто цикличным выполнением через набор и добавляющий каждый объект в нем к самому списку. Это использует переданный в методах делегата (Func) для получения значений X и Y.

Последняя часть содержит эти четыре метода, ответственные за получение значений X и Y из двух списков. В основном я сделал это, чтобы позволить методу создания диаграммы быть дженериком как возможным. Могло бы быть излишество.

  private DateTime GetBenchXValue(Bench currentBench)
  {
    return currentBench.DateLifted;
  }

  private Int32 GetBenchYValue(Bench currentBench)
  {
    return currentBench.BenchAmount;
  }

  private DateTime GetFoodIntakeXValue(FoodIntake currentIntake)
  {
    return currentIntake.DateEaten;
  }

  private Int32 GetFoodIntakeYValue(FoodIntake currentIntake)
  {
    return currentIntake.Calories;
  }

И поэтому при выполнении этого Вы получите два графика рядом. Обратите внимание, они будут очень просты, поскольку существует миллион различных свойств, которые могут быть установлены улучшить взгляд. Надежда это - то, что Вы просили.

  using System;
  using System.Web.UI.DataVisualization.Charting;
  using System.Web.UI.WebControls;
4
ответ дан 14 December 2019 в 13:50
поделиться

Я обновил образцы диаграмм MS для .NET 4.0 и добавил два дополнительных проекта - ChartsWithMVC и ChartsWithoutWebForms. Вы можете найти мой пример кода полезным, так как у меня очень простая реализация системы динамических диаграмм с использованием элемента управления диаграммой asp.net:

http://develocity.blogspot.com/2010/04/aspnet-chart-controls -without-web-forms.html

Надеюсь, это поможет.

0
ответ дан 14 December 2019 в 13:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: