PDA

View Full Version : سوال: ایجاد سری داینامیک برای چارت دایره های HighCHart



aebrs@yahoo.com
سه شنبه 20 تیر 1391, 18:54 عصر
می خواهم سری چارت دایره ای HighChart را داینامیک کنم حالت ثابت آن به این شکل است :



//object[] yValues = null;
//yValues = new object[] {
// new object[] { "Firefox", 45 },
// new object[] { "IE", 24.8 },
// new object[] { "Chrome", 12.8 },
// new object[] { "Safari", 8.5 },
// new object[] { "Opera", 5.2 },
// new object[] { "Outros", 3.7 }
// };


در حقیقت باید Object باشد
اطلاعات مورد استفاده را در دو آرائه دارم و به این شکل هم سعی در استفاده کرده ام اما مشکل دارد :



for (int i = 0; i < hidXCategories1.Count; i++)
{
yValues = new object[]{hidXCategories1.ToArray(typeof(object))+","+ hidValues1.ToArray(typeof(object))};
}


این هم پر کردن آرایه ها :


ArrayList hidValues1 = new ArrayList();
ArrayList hidXCategories1 = new ArrayList();

hidXCategories1.Add(ChkDaramad1.Text);
hidValues1.Add(int.Parse(LblDaramad1.Text));

hidXCategories1.Add(ChkDaramad2.Text);
hidValues1.Add(int.Parse(LblDaramad2.Text));

hidXCategories1.Add(ChkDaramad3.Text);
hidValues1.Add(int.Parse(LblDaramad3.Text));



از راهنمائی شما متشکرم

aebrs@yahoo.com
چهارشنبه 21 تیر 1391, 07:49 صبح
سلام
از دوستان کسی پاسخی برای ان مسئله نداشت یا مسئله گنگ است؟

aminghaderi
چهارشنبه 21 تیر 1391, 08:27 صبح
به این صورت داینامیک شد ، تستش کنید ، ببنید جواب می دهد.

کلاس :

public class MyCharts
{
private string[] StrArrNames;
private string[] StrArrParametrs;
object[] YValues = null;

public void Name(params string[] ArrName)
{
StrArrNames = ArrName;
}

public void Parametr(params string[] ArrParametr)
{
StrArrParametrs = ArrParametr;
}

public void Start()
{
for (int i = 0; i < 10; i++)
{
YValues[i] = new object[] { StrArrNames[i], StrArrParametrs[i] };
}
}
}


فراخوانی :

MyCharts Charts = new MyCharts();

Charts.Name("Firefox", "IE", "Chrome", "Safari", "Opera", "Outros");
Charts.Parametr("45", "24.8", "12.8", "8.5", "5.2", "3.7");
Charts.Start();


استفاده آسان در صفحه : (افزودن کلاس به صفحه ، متد استانداردی نیست ، فقط برای نمونه گذاشتم)


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;


public class MyCharts
{
private string[] StrArrNames;
private string[] StrArrParametrs;
object[] YValues = null;

public void Name(params string[] ArrName)
{
StrArrNames = ArrName;
}

public void Parametr(params string[] ArrParametr)
{
StrArrParametrs = ArrParametr;
}

public void Start()
{
for (int i = 0; i < 10; i++)
{
YValues[i] = new object[] { StrArrNames[i], StrArrParametrs[i] };
}
}
}

public partial class _Default : System.Web.UI.Page
{

protected void Page_Load(object sender, EventArgs e)
{
MyCharts Charts = new MyCharts();

Charts.Name("Firefox", "IE", "Chrome", "Safari", "Opera", "Outros");
Charts.Parametr("45", "24.8", "12.8", "8.5", "5.2", "3.7");
Charts.Start();

}
}




موفق باشید.

aebrs@yahoo.com
چهارشنبه 21 تیر 1391, 08:28 صبح
دوست عزیز قبل از آنکه آنرا تست کنم لازم دانستم از شما تشکر کنم
واقعا شما لطف دارید
و حتما کد هم جواب میدهد.
سلام ما را خدمت آقا امام رضا برسانید
از آقا برای شما کامیابی و شادکامی طلب میکنم
متشکرم
ابراهیمی

aebrs@yahoo.com
چهارشنبه 21 تیر 1391, 09:35 صبح
در این تابع :

public void Start()
{
for (int i = 0; i < 5; i++)
{
YValues[i] = new object[] { StrArrNames[i], StrArrParametrs[i] };
}
}

این خطا گرفته میشود :

Object reference not set to an instance of an object.

aminghaderi
چهارشنبه 21 تیر 1391, 13:46 عصر
سلام مجدد.
خواهش می کنم ، ممنونم از شما نظر لطف شماست.
کلا کار با ابجکت ها دردسر زیاد داره ، خصوصا ارایه سازی با اونها ؟! برای همین هم معمولا از لیست ها جنریک برای این کار استفاده می شه ، که هم راحت تر هست و هم عملیات boxing و unboxing ندارد.
من کد بالا رو به این صورت نوشتم ، داده به خوبی وارد و ذخیره می شود ولی چطور باید خروجی رو ببینیم ؟! نمی دونم؟!

public void Start()
{
YValues = new object[StrArrParametrs.Length];
for (int i = 0; i < StrArrParametrs.Length; i++)
{
YValues[0] = new object[2] { StrArrNames[i], StrArrParametrs[i] };
}
}

aebrs@yahoo.com
چهارشنبه 21 تیر 1391, 16:53 عصر
سلام و خسته نباشید
من کد را دنبال کردم و الان موفق شده ام تا از آن استفاده کنم
خیلی ممنون هستم
موفق و موید باشید