我使用的是ASP.Net Charting Controls和ASP.Net MVC。ASP.Net圖表 - 在IE 7上通過jQuery獲取導致圖像不加載
我想要在頁面上顯示圖表,用戶可以更改與此圖表相關的各種數據,然後按下執行POST操作的按鈕,然後返回新呈現的圖表。這是通過加載包含圖表的部分視圖的jQuery刷新的。
我遇到的問題是,在IE 7中我得到的圖像無法找到圖標。奇怪它在Firefox中正常工作!
更新圖表的方法:
- 在POST
- 應用發送新的參數圖表對象上改變的參數
- 控制器發出圖表對象,以局部視圖這使得它像一個控制
- jQuery然後加載在這個局部視圖。在IE 7中,我得到了圖像未找到的圖標。
這裏是在局部視圖用於呈現圖表對象的代碼:
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);
}
}
}
乾杯!
它加載這些圖表的jQuery是如下:
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");
}
}
「Chart.RenderControl」實際上做了什麼?在文件夾中創建圖像並呈現指向它的html img'標籤? PS。發佈jQuery函數將有所幫助。 –
添加了jQuery。雖然步進似乎工作正常。它生成一個像這樣的圖像:http:// localhost:2440/ChartImg.axd?[longNumberString] – Damien