Click here to Skip to main content
15,881,898 members
Please Sign up or sign in to vote.
1.00/5 (3 votes)
See more:
Hi ,

JavaScript
<script type="text/javascript">
    $(document).ready(function () {
        debugger;
        /* MORRIS DONUT CHART
              ----------------------------------------*/
        Morris.Donut({
            element: 'morris-donut-chart',
            data: [{
                label: "Arun",
                value: 27000
            }, {
                label: "Saumya",
                value: 5500
            }, {
                label: "Nilesh",
                value: 5500
            }, {
                label: "Tejas",
                value: 5500
            }, {
                label: "Raj",
                value: 27000
            }],
            resize: true
        });
    });
</script>

this is the data i want to bring from database , please suggest


below is what i have tried so far

[WebMethod]
public static List<ChartDetails> GetPiechartData()
{
    using (SqlConnection con = new SqlConnection(ApConfig.GetConectionString))
    {
        SqlCommand cmd = new SqlCommand("Usp_Getdata", con);
        cmd.CommandType = CommandType.StoredProcedure;
        SqlDataAdapter da = new SqlDataAdapter();
        da.SelectCommand = cmd;
        DataTable dt = new DataTable();
        da.Fill(dt);

        List<ChartDetails> dataList = new List<ChartDetails>();

        foreach (DataRow dtrow in dt.Rows)
        {
            ChartDetails details = new ChartDetails();
            details.PlanName = dtrow[0].ToString();
            details.PaymentAmount = Convert.ToInt32(dtrow[1]);

            dataList.Add(details);
        }
        return dataList;
    }
}


and on script

XML
<script type="text/javascript">
    $(function () {
        debugger;
        $.ajax(
        {
            type: 'POST',
            dataType: 'json',
            contentType: 'application/json',
            url: 'Home.aspx/GetPiechartData',
            data: '{}',
            success: function (response) {
                Morris.Donut({
                    element: 'donut-example',
                    data: response
                });
            },

            error: function () {
                alert("Error loading data! Please try again.");
            }
        });
    })
</script>

<div class="col-md-3 col-sm-12 col-xs-12">
    <div class="panel panel-default">
        <div class="panel-heading">
            Donut Chart Example
        </div>
        <div class="panel-body">
            <div id="morris-donut-chart"></div>
        </div>
    </div>
</div>
Posted
Updated 4-Oct-16 22:31pm
v3

Hi all ,

no one has answered this question as there might be many few who actually worked on morris js charts. I checked online but i have also found only limited data and documentation from internet. after so much reserch and tying i got the solution to display morris danut chart in asp.net

below is my solution what i have tried so far , so in future other developer will get an answer to deal with that

http://idevexplorer.com/2014/11/morris-js-chart-in-an-mvc-application/[^]

above link has got excellent examples given to refer, how to use paramnters and all but they havent shown how to generate dynamically

<script type="text/javascript">
    $(document).ready(function () {
        Morris.Donut({
            element: 'morris-donut-chart',
            data: $.parseJSON(Graph()),
            resize: true
        });
    });

    function Graph() {
        var data = "";
        $.ajax({
            type: 'POST',
            url: 'Home.aspx/GetPiechartData',
            dataType: 'json',
            async: false,
            contentType: "application/json; charset=utf-8",
            data: {},
            success: function (result) {
                data = result.d;
            },
            error: function (xhr, status, error) {
                alert(error);
            }
        });

        return data;
    }
</script>


XML
<div class="col-md-3 col-sm-12 col-xs-12">
    <div class="panel panel-default">
        <div class="panel-heading">
            Donut Chart Example
        </div>
        <div class="panel-body">
            <div id="morris-donut-chart"></div>
        </div>
    </div>
</div>



and in my codebehind i called my webmethod

[WebMethod]
      public static string GetPiechartData()
      {
          using (SqlConnection con = new SqlConnection(ApConfig.GetConectionString))
          {
              SqlCommand cmd = new SqlCommand("Usp_Getdata", con);
              cmd.CommandType = CommandType.StoredProcedure;
              SqlDataAdapter da = new SqlDataAdapter();
              da.SelectCommand = cmd;
              DataTable dt = new DataTable();
              da.Fill(dt);

              List<GraphData> dataList = new List<GraphData>();

              foreach (DataRow dtrow in dt.Rows)
              {
                  GraphData details = new GraphData();
                  details.label = dtrow[0].ToString();
                  details.value = dtrow[1].ToString();

                  dataList.Add(details);
              }

              //oper = null which means its first load.
              var jsonSerializer = new JavaScriptSerializer();
              string data = jsonSerializer.Serialize(dataList);
              return data;
          }
      }


make sure you do use label and value to make it work from class
 
Share this answer
 
Comments
NekoNao 17-Nov-15 21:28pm    
how do you call the function?
Torakami 20-Nov-15 4:39am    
the javascript function gets called automatically as its written inside document.ready method , and from there i make ajax call to webmethod which brings the data and completes the chart rendering
Torakami 20-Nov-15 4:40am    
make sure you do use label and value to make it work from class
MayankSemwal 8-Mar-16 3:50am    
using above i am getting this result
"[{\"Year\":2013,\"a\":30,\"b\":20},{\"Year\":2014,\"a\":75,\"b\":65},{\"Year\":2015,\"a\":50,\"b\":40},{\"Year\":2016,\"a\":75,\"b\":65}]"
instead of the expected result. Please help me out. P.S i am using hard coded data being passed from C#.
Torakami 8-Mar-16 9:28am    
Please check my solution .. I have given solution to extract the data from sql using c# as a language and ado.net
thanks a lot . it is working for me
 
Share this answer
 
Comments
Torakami 5-Oct-16 11:45am    
you can put it into comment , and accepting my solution would be better.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900