Рейтинг:
18
Torakami
Всем привет ,
никто не ответил на этот вопрос, так как может быть очень мало тех, кто действительно работал над диаграммами morris js. Я проверил онлайн, но я также нашел только ограниченные данные и документацию из интернета. после стольких ресерчей и привязок я получил решение отобразить диаграмму Морриса Данута в asp.net
ниже приведено мое решение, которое я пробовал до сих пор , так что в будущем другой разработчик получит ответ, чтобы справиться с этим
http://idevexplorer.com/2014/11/morris-js-chart-in-an-mvc-application/[^]
выше ссылка имеет отличные примеры, приведенные для ссылки, как использовать paramnters и все, но они не показали, как генерировать динамически
<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>
<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>
и на мой отделенного кода я позвонил мой веб-метод
[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;
}
}
убедитесь, что вы используете метку и значение, чтобы заставить его работать из класса
NekoNao
как вы вызываете эту функцию?
Torakami
функция javascript вызывается автоматически, так как она написана внутри метода document. ready, и оттуда я делаю ajax-вызов webmethod, который приносит данные и завершает рендеринг диаграммы
Torakami
убедитесь, что вы используете метку и значение, чтобы заставить его работать из класса
MayankSemwal
используя вышеизложенное я получаю такой результат
"[{\"Year\":2013,\"a\":30,\"b\":20},{\"Year\":2014,\"a\":75,\"b\":65},{\"Year\":2015,\"a\":50,\"b\":40},{\"Year\":2016,\"a\":75,\"b\":65}]"
вместо ожидаемого результата. Пожалуйста, помогите мне. P. S Я использую жестко закодированные данные, передаваемые из C#.
Torakami
Пожалуйста, проверьте мое решение .. Я дал решение для извлечения данных из sql с использованием c# в качестве языка и ado.net
MayankSemwal
график общественного ActionResult ()
{
GraphModel oGraphModel = null;
GraphDataList lstGraphDataList = новый GraphDataList();
lstGraphDataList.ListOfGraphData = новый список & lt;graphmodel>();
int index = 0;
Random random = новый случайный();
в то время как (индекс < 10)
{
oGraphModel = новая Графомодель();
oGraphModel.метка = Датавремя.Сейчас.AddDays(индекс).ToString("ДД-ММ-гггг");
oGraphModel.значение = конвертировать.ToString(random. Next (index, 5000));
oGraphModel.а = конвертировать.ToString(индекс + 2000);
lstGraphDataList.ListOfGraphData. Add(oGraphModel);
индекс++;
}
var jsonSerializer = новый JavaScriptSerializer();
строковые данные = jsonSerializer.Сериализация (lstGraphDataList);
return Json(data, JsonRequestBehavior.AllowGet);
}
< script type= "text/javascript">
$(документ).готово(функция () {
новый Моррис.Линия({
элемент: "линейный график",
граф данных(),
xkey: 'a',
ykeys: ['value'],
асинхронные: правда,
метки: ['value'],
lineColors: ['#D9534F'],
ширина линии: '2px',
hideHover: правда
});
новый Моррис.Область({
элемент: 'area-chart',
граф данных(),
xkey: 'a',
ykeys: ['value'],
асинхронные: правда,
метки: ['value'],
lineColors: ['#428BCA'],
ширина линии: '2px',
hideHover: правда
});
});
график функций() {
ВАР сведения = "";
$.Аякс({
тип: "получить",
url: "/ HomeController/Graph/",
тип данных: 'json',
асинхронные: правда,
contentType: "application/json; charset=utf-8",
данные: { },
успех: функция (результат) {
данные = результат;
},
ошибка: функция (xhr, статус, ошибка) {
предупреждение(ошибка);
}
});
возвращать данные;
}
< / script>