- •События
- •Явные реализации интерфейса
- •Построение по осям
- •Настройка шкалы, линий сетки и делений
- •Использование точек пересечения
- •Создание базовой диаграммы
- •Привязка к объектному источнику данных
- •Первое приложение с применением Microsoft Chart Control
- •30 Март 2012 Taras Написать комментарий к комментариям
- •Выбор типа линии ms Chart Control
Привязка к объектному источнику данных
Один из наиболее гибких механизмов заполнения диаграммы предусматривает использование ObjectDataSource, когда определяется объект, который может получать данные, а в качестве моста между логикой извлечения данных в коде и элементом управления Chart служит ObjectDataSource. Класс извлечения должен быть создан в папке App_Code. В следующем примере возвращаются простые статические данные:
public class MyObjectDataSource
{
public class DataItem
{
public string Name { get; set; }
public double Popularity { get; set; }
}
public DataItem[] GetData()
{
return new DataItem[] {
new DataItem() {Name = "Ватрушка", Popularity = 30},
new DataItem() {Name = "Мороженное", Popularity = 30},
new DataItem() {Name = "Орешки", Popularity = 20},
new DataItem() {Name = "Шоколадка", Popularity = 20}
};
}
}
В этом примере определен класс DataItem, имеющий свойства Name и Popularity. Метод GetData() генерирует и возвращает массив элементов DataItem. Эта методика привязки будет также работать с методами, которые возвращают объекты DataSet и DataTable. Гибкость использования ObjectDataSource обусловлена тем, что средства, определяющие источник данных, абстрагируются от диаграммы, что позволяет свободно изменять бизнес-логику. Для работы с данными создается новый экземпляр ObjectDataSource с передачей конструктору имени созданного класса извлечения и имени метода, который должен быть вызван для получения данных. В рассматриваемом примере ими соответственно являются MyObjectDataSource и GetData():
protected void Page_Load(object sender, EventArgs e)
{
// Форматировать диаграмму
Chart1.BackColor = Color.Gray;
Chart1.BackSecondaryColor = Color.WhiteSmoke;
Chart1.BackGradientStyle = GradientStyle.DiagonalRight;
Chart1.BorderlineDashStyle = ChartDashStyle.Solid;
Chart1.BorderlineColor = Color.Gray;
Chart1.BorderSkin.SkinStyle = BorderSkinStyle.Emboss;
// Форматировать область диаграммы
Chart1.ChartAreas[0].BackColor = Color.Wheat;
// Добавить и форматировать заголовок
Chart1.Titles.Add("ASP.NET Chart");
Chart1.Titles[0].Font = new Font("Utopia", 16);
Chart1.Series.Add(new Series("Default")
{
ChartType = SeriesChartType.Pie
});
// Создать объектный источник данных
ObjectDataSource ds = new ObjectDataSource("MyObjectDataSource", "GetData") ;
// Привязать источник к диаграмме
Chart1.DataSource = ds;
Chart1.Series[0].XValueMember = "Name";
Chart1.Series[0].YValueMembers = "Popularity";
}
После создания ObjectDataSource привязывается к элементу управления через свойство Chart.DataSource. На этот момент источник данных действует в качестве моста между классом извлечения и диаграммой, но диаграмма не знает, что делать с данными, которые доступны. Эта информация предоставляется с использованием свойств Series.XValueMember и Series.YValueMember, которые позволяют определять, какие члены объекта ObjectDataSource должны применяться для осей X и Y. Диаграмма, созданная этим методом, показана на рисунке ниже:
