J'utilise les ASP.Net Charting Controls et ASP.Net MVC. J'essaie d'avoir un graphique affiché sur une page, l'utilisateur peut changer diverses données associées à ce tableau, puis appuyez sur un bouton qui va effectuer une opération POST, puis retourner un graphique nouvellement rendu. Ceci est actualisé via jQuery qui charge une vue partielle contenant le graphique.Graphiques ASP.Net - L'obtention via jQuery sur IE 7 provoque le chargement de l'image
Le problème que j'ai est que dans IE 7 je reçois l'icône n'a pas pu être trouvé. Bizarrement ça fonctionne très bien dans Firefox!
Le processus de carte mise à jour:
- Envoyer de nouveaux paramètres dans un POST
- application a changé les paramètres de l'objet graphique
- Controller envoie objet graphique à la vue partielle qu'elle rend comme un contrôle
- jQuery se charge ensuite dans cette vue partielle. Dans IE 7 je reçois l'icône image non trouvée.
Voici le code utilisé dans la vue partielle pour rendre le graphique Objet:
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);
}
}
}
Cheers!
Le jQuery qui charge ces cartes est la suivante:
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");
}
}
Que fait réellement 'Chart.RenderControl'? Créer l'image dans un dossier et rendre une balise html 'img' pointant dessus? PS. l'affichage de la fonction jQuery serait utile. –
Ajout du jQuery. Stepping semble bien fonctionner. Il génère une image comme celle-ci: http: // localhost: 2440/ChartImg.axd? [LongNumberString] – Damien