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' 태그를 렌더링 하시겠습니까? 추신. jQuery 함수를 게시하면 도움이 될 것입니다. –
jQuery를 추가했습니다. 스테핑은 잘 작동하는 것 같습니다. http : // localhost : 2440/ChartImg.axd? [longNumberString] – Damien