我用的 ASP.Net 制图控制 和ASP.Net 视.

我想有一个图表显示在一个页面上,用户可以改变的各种数据与此相关的图表,然后按一个按钮,它将执行一个后的动作,然后返回一新呈现的图表。这是刷新通过jQuery其中载有局部视图的含图表。

这问题我有的是,在即7I获得的图像找不到标。奇怪的是它的工作现在火狐!

更新过程的图表:

  • 发新的参数后
  • 应用程序改变的参数的图表对象
  • 控制器发送的图象的局部视图,这使它喜欢控制
  • jQuery然后载于这种局部视图。在即7i获得的图像找不到标。

这里是代码使用中的局部视图,来呈现的图表对象:

if (Model.Chart != null)
        {
            Model.Chart.Page = this.Page;
            System.Web.UI.DataVisualization.Charting.Chart Chart1 = Model.Chart;
            using (HtmlTextWriter writer = new HtmlTextWriter(this.Response.Output))
            {
                try
                {

                    Chart1.ImageType = System.Web.UI.DataVisualization.Charting.ChartImageType.Jpeg;
                    Chart1.RenderControl(writer);
                }
                catch (Exception ex)
                {
                    writer.WriteEncodedText(ex.Message);
                }
            }
        }

干杯!

S其中载这些图表如下:

function PostWidgetDataOverride(ChartID) {
    $.ajax({
        url: "/Home/GetChart",
        type: "POST",
        dataType: "HTML",
        data: { ChartID: ChartID, SeriesID: $('.SeriesID').val(), ParameterDefaults: $('.parameterDefault').serialize(), Time: getTimeStamp() },
        success: UpdateChart
    });
}

function UpdateChart(ChartContent) {
   $("#widgetConfig").dialog("close");
   var existingChart = CheckIfWidgetIsOnPage($(ChartContent).attr("id"))

   if (existingChart !== undefined) {
       existingChart.fadeOut("slow", function() { existingChart.replaceWith(ChartContent); }).fadeIn("slow");
   }
  else {
       $(ChartContent).appendTo($("#dashboardArea")).fadeIn("slow");
   }
}
有帮助吗?

解决方案

我认为问题是如何获得的图像。从你的代码发布它看起来像你得到的实际图像数据通过的ajax下载,然后插入新的图像数据进DOM。这可能会工作的火狐,但不适用于即(S永远不会试图或者)。无论如何假定,即不喜欢这会更好点的图像的图像处理程序通过源属性的图像元。当需要改变的图像只是改变的参数,在该网址传送给处理程序,当这种变化即和Firefox既提出请求的新形象。例如:

HTML

<img src="./chart.aspx?SeriesId=456&ChartId=123&Time=20091021155300" id="chart" />

从jQuery当你需要来更新图表:

function UpdateChart(chartId, seriesId, time){
  $("#chart").attr("src","./chart.aspx?SeriesId="+seriesId+"&ChartId="+chartId+"&Time="+time);
}

其他提示

你可以写一个服务清理的图像x天或者您可以使用#SEQ(maxFiles、分)设置过期,但这不是真的性命名。

我得到了它的工作通过改变ImageStorageMode:

Chart1.ImageStorageMode = System.Web.UI.DataVisualization.Charting.ImageStorageMode.UseImageLocation

但现在它悬挂在一个文件夹。我不想要一个文件夹堵塞了图像...

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top