score:5

Accepted answer

i have solved this problem!

solution:

model:

public class salesviewmodel
    {
        public string salesdate { get; set; }
        public int salesprice { get; set; }
    }

data:

public class salescontext
    {
        public string connectionstring { get; set; }

        public salescontext(string connectionstring)
        {
            this.connectionstring = connectionstring;
        }
        public salescontext()
        {          
        }

        public list<salesviewmodel> getalldata()
        {
            list<salesviewmodel> list = new list<salesviewmodel>();
            list.add(new salesviewmodel() { salesdate = "1", salesprice = 3 });
            list.add(new salesviewmodel() { salesdate = "2", salesprice = 6 });
            list.add(new salesviewmodel() { salesdate = "3", salesprice = 7 });
            list.add(new salesviewmodel() { salesdate = "4", salesprice = 2 });
            list.add(new salesviewmodel() { salesdate = "5", salesprice = 1 });

            return list;
        }
    }

controller:

using newtonsoft.json;
public iactionresult chart()
        {
            salescontext sc = new salescontext();
            string json = jsonconvert.serializeobject(sc.getalldata());
            //viewdata["chart"] = json;
            viewbag.sales = json;
            return view(sc.getalldata());
        }

view:

document.getelementbyid('adddata').addeventlistener('click', function() {
            if (config.data.datasets.length > 0) {
                var salesdata = @html.raw(viewbag.sales);
                config.data.datasets.foreach(function(dataset) {
                        for (var i = 0; i < salesdata.length; i++) {
                            var month = months[config.data.labels.length % months.length];
                            config.data.labels.push(month);
                            dataset.data.push(salesdata[i].salesprice);
                        }
                });

                window.myline.update();
            }
        });

use var salesdata = @html.raw(viewbag.sales) to get data from controller!

use salesdata[i].salesprice to push data to the dataset!

thanks!


Related Query

More Query from same tag