Javascript функция Gridview с высокой диаграммой в каждой строке сетки с уникальной проблемой идентификатора div - PullRequest
0 голосов
/ 19 февраля 2019

Я пытаюсь применить диаграмму прямоугольника с высокой диаграммой к каждой строке сетки, в зависимости от значений из SqlDataReader.Я извлекаю данные из SQL с помощью синтаксического анализа в measureID (это уникальный идентификатор и начинается не с 1). Я получаю данные диаграммы в формате 20,32,35,38,45 и преобразую их в JSON для анализакак данные в старшей диаграмме.Я пытаюсь проанализировать данные для каждой строки в зависимости от measureID

текущая ошибка, которую я получаю: Дополнительная информация: указанное приведение недопустимо для следующей строки: var CurrentID = (int) DataBinder.Eval(oItem, "MeasureID");

Я пытаюсь создать div с уникальным идентификатором, чтобы он мог поместить данные в каждую строку, но, похоже, он не работает

ASPX

   <asp:TemplateField HeaderText="header" >
<ItemTemplate >
 <%#getDivContainer(Container.DataItem)%>
</ItemTemplate>

JS:

function CreateBoxPlot() {

var hv = $('#hiddenvariable').val();
console.log(hv);
var hvmeasure = $('#hiddenvariablemeasuredesc').val();
console.log(hvmeasure);

var chart;
var titleText = hvmeasure;
var subTitleText = 'Test Chart Subtitle';
var type = 'boxplot';

$(function () {
    $('.graph').highcharts({
        chart: { type: type, inverted: true},
        title: { text: hvmeasure },
        subtitle: { text: subTitleText },
        renderTo: $container[0],
        legend: { enabled: false },
        tooltip: {
            shared: true,
            crosshairs: true
        },
        plotOptions: {
            series: {
                pointWidth: 50
            }
        },

        xAxis: {
            visible: false

        },
        yAxis: {

            visible: true,
            title: {
                text: 'Values'
            },

            plotLines: [{
                value: 80,
                color: 'red',
                width: 2

            }]

        }
    });

    // here you add the correct data to each line
    $( ".graph" ).each(function( index, element ) { 
        chart = $(element).highcharts();

        // now read the id, and load the appropriate data
        MyDataID = $(element).data( "id" );
        var hv = $('#hiddenvariable' + MyDataID).val();
        var data = [JSON.parse(hv).map(item => parseInt(item))];

    //chart = $('#container').highcharts();
    chart.addSeries({ data: data });


});

}

C # Методы

        protected string getDivContainer(object oItem)
{
    // read the id from your data set
    var CurrentID = (int) DataBinder.Eval(oItem, "MeasureID");

    return string.Format("<div id=\"container_{0}\" class=\"graph\" data-id=\"{0}\"></div>", CurrentID);
}


public void SerializedBoxChart(int measureid)
{
....
       cmd.CommandType = CommandType.StoredProcedure;
    cn.Open();
    SqlDataReader reader = cmd.ExecuteReader();


    var chartValues = new List<string>();
    var chartValues2 = new List<string>();

    if (reader.HasRows)
    {
        while (reader.Read())
        {
            string name = reader.GetString(0);

            if (name != "Total")
            {


                string str = reader["ChartData"].ToString();
                string a = reader["MeasureDesc"].ToString();

                string[] strList = str.Split(',');

                // convert it in json
                dataStr = JsonConvert.SerializeObject(strList, Formatting.None);

                hiddenvariable.Value = dataStr;
                hiddenvariablemeasuredesc.Value = a;

                chartValues.Clear();
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...