Je travaille sur une simulation de classe où je dois simuler l'extraction de données d'une base de données et leur envoi dans un délai de json array
javascript. Cependant, je ne peux pas le faire fonctionner, j’ai suivi plusieurs tutoriels et exemples et il semble que quelque chose me manque.
Ceci est mon code dans le CodeBehind
fichier:
public class Segment : System.Web.UI.Page
{
public int[,] GetAllSegments()
{
int[,] segments = new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } };
return segments;
}
public void Page_Load(object sender, EventArgs e)
{
int[,] allSegments = GetAllSegments();
JavaScriptSerializer serializer = new JavaScriptSerializer();
string json = serializer.Serialize(allSegments);
string script = String.Format("<script type="text/javascript">var allSegments={0}</script>", json);
this.ClientScript.RegisterClientScriptBlock(this.GetType(), "clientScript", script, true);
}
}
Le script n'apparaît jamais, aussi je l'ai essayé avec RegisterStartupScript
mais ça ne marche pas non plus ...
Dans ma page HTML, j'ai inclus ce qui suit en haut: <%@ Page Language="C#" CodeBehind="Dashboard.aspx.cs" %>
Quelqu'un peut-il repérer le problème? Toute aide est fortement appréciée!
Réponses:
1 pour la réponse № 1Le point est, le dernier argument de RegisterClientScriptBlock
la méthode est nommée addScriptTags
et depuis que vous l'avez réglé sur true
, vous devez supprimer la balise de script et laisser C # ajouter ces balises pour vous:
int[,] allSegments = GetAllSegments();
JavaScriptSerializer serializer = new JavaScriptSerializer();
string json = serializer.Serialize(allSegments);
string script = String.Format("var allSegments={0};", json);
this.ClientScript.RegisterClientScriptBlock(this.GetType(), "clientScript", script, true);
ou tout simplement mis addScriptTags
à false
:
int[,] allSegments = GetAllSegments();
JavaScriptSerializer serializer = new JavaScriptSerializer();
string json = serializer.Serialize(allSegments);
string script = String.Format("<script type="text/javascript">var allSegments={0};</script>", json);
this.ClientScript.RegisterClientScriptBlock(this.GetType(), "clientScript", script, false);
L’autre modification mineure que j’ai apportée consiste simplement à ajouter le point-virgule à la fin de votre code js.