Member 12605293 Ответов: 1

Раскрывающийся список выбранное значение должно показывать необходимые данные в детализации dotnetcharting


Привет Я работаю на dotnetCharting Drildown и, чтобы окончательно выбрать год из выпадающего списка выбранный год детали должны поступить на мою карту.

Что я уже пробовал:

<pre>using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Drawing;
using System.Drawing.Drawing2D;
using dotnetCHARTING;
using System.Configuration;
using System.Data.SqlClient;

namespace dotnetdrilldown03
{
    public partial class DrillDropdown : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Chart.DefaultSeries.ConnectionString = ConfigurationManager.ConnectionStrings["sqlconnection"].ConnectionString;
            if (!IsPostBack)
            {
                Bindddl();
            }
                Chart.YAxis.Label.Text = "No of Students";
                Chart.Title = "Progress Report";
                Chart.XAxis.Label.Text = "Years";
                Chart.Width = 750;
                Chart.Height = 550;
                Chart.Debug = true;
                Chart.DateGrouping = TimeInterval.Years;
                Chart.DrillDownChain = "Years,Quarters,Months,Full";
                Chart.DefaultSeries.DefaultElement.ToolTip = "%yvalue";
                Chart.Series.Name = "Bonus points";
                Chart.Series.StartDate = new System.DateTime(2014, 1, 1, 0, 0, 0);
                Chart.Series.EndDate = new System.DateTime(2017, 12, 31, 23, 59, 59);
                Chart.Series.SqlStatement = @"SELECT Duration,Total FROM Report WHERE Duration >= #STARTDATE#  ";

                Chart.SeriesCollection.Add();
            
        }

        protected void Bindddl()
        {
            Ddldrill.Items.Add("2014");
            Ddldrill.Items.Add("2015");
            Ddldrill.Items.Add("2016");
            Ddldrill.Items.Add("2017");
            if (Request.QueryString["limitMode"] != null)
                Ddldrill.SelectedIndex = (int)Enum.Parse(typeof(dotnetCHARTING.LimitMode), Request.QueryString["limitMode"], true);
            Chart.Series.LimitMode = (dotnetCHARTING.LimitMode)Enum.Parse(typeof(dotnetCHARTING.LimitMode), Ddldrill.SelectedItem.Value, true);
            Ddldrill.DataBind();
            Ddldrill.Items.Insert(0, new ListItem("--Select--"));

            if (Ddldrill.SelectedItem.Value = "")
            { 
            
            }
        }

        protected void Ddldrill_SelectedIndexChanged(object sender, EventArgs e)
        {
            Bindddl();
        }
        dotnetCHARTING.SeriesCollection Calculate()
        {
            dotnetCHARTING.SeriesCollection SC = new dotnetCHARTING.SeriesCollection();
            Random myR = new Random(1);
            for (int a = 0; a < 4; a++)
            {
                dotnetCHARTING.Series s = new dotnetCHARTING.Series();
                s.Name = "Series " + a.ToString();
                for (int b = 0; b < 1; b++)
                {
                    Element e = new Element();
                    e.Name = "Element " + b.ToString();
                    e.YValue = myR.Next(20);
                    s.Elements.Add(e);
                }

                SC.Add(s);
            }
            SC[0].Element.Color = Color.FromArgb(49, 255, 49);
            SC[0].Elements[0].Name = "English";
            SC[0].LegendEntry.Value = "13";
            SC[0].LegendEntry.Name = "Between 10-15";
            return SC;
        }
    }
}

1 Ответов

Рейтинг:
2

Graeme_Grant

ASP.NET имеет как код на странице, так и код за ней. Вы упускаете важную часть, которая поможет решить вашу проблему-the.страница ASPX. Ваш вопрос не описывает симптомы-например: моя машина не заводится. Что происходит, когда вы поворачиваете ключ? Я слышу шум? что за шум? и т.д... Без подробностей можно только догадываться!

Теперь я являюсь разработчиком MVC, а не Asp.Net веб-страница dev, так что мне потребовалось несколько минут, чтобы приспособиться. Итак, вот моя догадка о колющем ударе в темноте: Я думаю, что вам не хватает свойства в вашем выпадающем списке:

AutoPostBack="True"
вызывая некоторые события dropdownlist в код-позади, чтобы не стрелять.

Чтобы продемонстрировать формирование выпадающего списка так, как я думаю, вы этого хотите, вот рабочий пример:

1. Страница:
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %>

<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server">

        <div class="col-md-4">
            <h2>DropDown Test</h2>
            <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"></asp:DropDownList>
            <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
        </div>

</asp:Content>
2. Код-позади
using System;
using System.Collections.Generic;
using System.Web.UI;

namespace WebApplication1
{
    public partial class _Default : Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                InitData();
            }

        }

        public List<string> Options { get; set; }
        private void InitData()
        {
            Options = new List<string> { "AAA", "BBB", "CCC" };
            foreach (var item in Options)
            {
                DropDownList1.Items.Add(item);
            }
            DropDownList1.SelectedIndex = 0;
            SetLabel();

        }

        protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
        {
            SetLabel();
        }

        private void SetLabel()
        {
            Label1.Text = DropDownList1.SelectedItem.Text;
        }
    }
}


Member 12605293

Привет Грэм
Спасибо за совет,

Вот мой aspx:








&ЛТ;АСП:метка идентификатор="Метка1" атрибут runat="сервер" ширина="100 Пикс" текст="выбрать год"и GT;

&ЛТ;как ASP:dropdownlist с ИД="Ddldrill" атрибут runat="сервер" ширина="100 Пикс" autopostback элемента управления="истинный" OnSelectedIndexChanged="Ddldrill_SelectedIndexChanged"&ГТ;



&ЛТ;dotnet ограничителя:уникальный идентификатор="диаграмма" атрибут runat="сервер" /&ГТ;


Проблема в том, что изначально диаграмма показывает все годы на гистограмме,а при выборе значения в ddl она не показывает выбранный год

Member 12605293

Кроме того, значение в ddl повторяется дважды в postback

Graeme_Grant

начните новый проект, используйте мой код и посмотрите, как он работает.

Если у вас все еще есть проблемы, установите точки останова и пройдите через свой код.

Graeme_Grant

Кроме того, разместите эту информацию в своем вопросе там, где ее могут увидеть другие. Перемещение информации в вопросе, как уже упоминалось во вступлении к моему решению, необходимо.