আমি এসকিউএল সার্ভার থেকে আমার ডেটা পেতে এজ্যাক্স ব্যবহার করছি, তারপরে আমি একটি জেএস অ্যারে প্রস্তুত করি যা আমার চার্টে ডেটা হিসাবে ব্যবহৃত হয়। একবার জাভাস্ক্রিপ্ট কোড একবার এজেএক্স সফল হয়:
...,
success: function (data) {
var fseries = [];
var series = [];
for (var arr in data) {
for (var i in data[arr]['data'] ){
var d = data[arr]['data'][i];
//if (i < 5) alert("d.method = " + d.method);
var serie = {x:Date.parse(d.Value), y:d.Item, method:d.method };
series.push(serie);
}
fseries.push({name: data[arr]['name'], data: series, location: data[arr]['location']});
series = [];
};
DrawChart(fseries);
},
এখন টুলটিপে অতিরিক্ত মেটা-ডেটা দেখানোর জন্য:
...
tooltip: {
xDateFormat: '%m/%d/%y',
headerFormat: '<b>{series.name}</b><br>',
pointFormat: 'Method: {point.method}<br>Date: {point.x:%m/%d/%y } <br>Reading: {point.y:,.2f}',
shared: false,
},
আমি আমার ফলাফল সেটটি দিয়ে পুনরাবৃত্তি করতে একটি ডাটাআর ব্যবহার করি, তারপরে আমি জেসন ফর্ম্যাটে ফিরে যাওয়ার আগে মানগুলি নির্ধারণের জন্য একটি ক্লাস ব্যবহার করি। অ্যাজাক্স দ্বারা কল করা কন্ট্রোলার অ্যাকশনের জন্য এখানে সি # কোড রয়েছে।
public JsonResult ChartData(string dataSource, string locationType, string[] locations, string[] methods, string fromDate, string toDate, string[] lstParams)
{
List<Dictionary<string, object>> dataResult = new List<Dictionary<string, object>>();
Dictionary<string, object> aSeries = new Dictionary<string, object>();
string currParam = string.Empty;
lstParams = (lstParams == null) ? new string[1] : lstParams;
foreach (DataRow dr in GetChartData(dataSource, locationType, locations, methods, fromDate, toDate, lstParams).Rows)
{
if (currParam != dr[1].ToString())
{
if (!String.IsNullOrEmpty(currParam)) //A new Standard Parameter is read and add to dataResult. Skips first record.
{
Dictionary<string, object> bSeries = new Dictionary<string, object>(aSeries); //Required else when clearing out aSeries, dataResult values are also cleared
dataResult.Add(bSeries);
aSeries.Clear();
}
currParam = dr[1].ToString();
aSeries["name"] = cParam;
aSeries["data"] = new List<ChartDataModel>();
aSeries["location"] = dr[0].ToString();
}
ChartDataModel lst = new ChartDataModel();
lst.Value = Convert.ToDateTime(dr[3]).ToShortDateString();
lst.Item = Convert.ToDouble(dr[2]);
lst.method = dr[4].ToString();
((List<ChartDataModel>)aSeries["data"]).Add(lst);
}
dataResult.Add(aSeries);
var result = Json(dataResult.ToList(), JsonRequestBehavior.AllowGet); //used to debug final dataResult before returning to AJAX call.
return result;
}
আমি বুঝতে পারছি সি # তে কোড করার আরও কার্যকর এবং গ্রহণযোগ্য উপায় আছে তবে আমি প্রকল্পটি উত্তরাধিকারসূত্রে পেয়েছি।
series
অবজেক্টে অতিরিক্ত ডেটা যুক্ত করার চেষ্টা করেছেন এবং এই হ্যান্ডলারে এটি প্রদর্শন করছেন?