highcharts - не создает с ajax - PullRequest
       1

highcharts - не создает с ajax

0 голосов
/ 18 февраля 2019

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

в примере 2 деления.container1 и container2, container1 визуализируют PartalView в бритве и работают нормально и диаграмма создана, но container2 предположим, что после нажатия кнопки Change Data содержит диаграмму, она вызывает действие через AJAX, которое отображает тот же PartalView, как показанов container1 но не работает!

где я не прав?

вызвано действие и сервер отвечает, и в консоли нет ошибки, это после нажатия кнопки:

enter image description here

Index.cshtml (View)

<button id="changeDataButton">Change Data</button>

<div id="container1">
    @{
        Random random = new Random();
        Html.RenderPartial("~/Views/Shared/chartPartialView.cshtml", new ChartModel()
        {
            CategoriesStackBar = new List<string>() { "A", "B", "C" },
            Series = new List<Series>()
                {
                    new ColumnSeries()
                    {
                        Name = "A",
                        Data = new List<ColumnSeriesData>()
                        {
                            new ColumnSeriesData()
                            {
                                Y = random.Next(100),
                            },
                            new ColumnSeriesData()
                            {
                                Y = random.Next(100),
                            },
                            new ColumnSeriesData()
                            {
                                Y = random.Next(100),
                            },
                        },
                    }
                },
            Id = "chart",
        });
    }
</div>

<div id="container2">

</div>

@section scripts{
    <script src="~/Scripts/highcharts.js"></script>

    <script>
        $(document).ready(function () {
            $('#changeDataButton').click(function (event) {
                console.log('change data button clicked');
                $.ajax({
                    async: false,
                    url: '/Home/UpdateChart',
                    success: function (partialView) {
                        console.log("success");
                        console.log(partialView);
                        $('#container2').innerHTML = (partialView);
                    }
                })
            })
        });
    </script>
}

(Controller)

    public ActionResult UpdateChart()
    {
        Random random = new Random();
        PartialViewResult partialViewResult = PartialView("~/Views/Shared/chartPartialView.cshtml", new ChartModel()
        {
            CategoriesStackBar = new List<string>() { "A", "B", "C" },
            Series = new List<Series>()
                {
                    new ColumnSeries()
                    {
                        Name = "A",
                        Data = new List<ColumnSeriesData>()
                        {
                            new ColumnSeriesData()
                            {
                                Y = random.Next(100),
                            },
                            new ColumnSeriesData()
                            {
                                Y = random.Next(100),
                            },
                            new ColumnSeriesData()
                            {
                                Y = random.Next(100),
                            },
                        },
                        Id = "dynamicChart",
                    }
                }
        });
        return partialViewResult;
    }

Заранее благодарим за вашу помощь

1 Ответ

0 голосов
/ 18 февраля 2019

Вы не можете использовать innerHTML непосредственно для объекта jQuery, вам придется использовать .html():

$('#container2').html(partialView);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...