i ont le script sur ASPX:variables Javascript not found
<dx:ASPxButton ID="ASPxButton_PrintLetrVoit" runat="server" Text="Impression lettre de voiture(décalage)" AutoPostBack="False">
<ClientSideEvents Click="function (s, e) { e.processOnServer = false; for (var i = 0; i < Tourne.length; i++) {window.open('PrintLettreVoit.aspx?TourneId='+Tourne[i]);}}" />
</dx:ASPxButton>
et cs:
public List<string> Tourne;
protected void Page_Load(object sender, EventArgs e)
{
try
{
foreach (var oItem in oOrdre_BL.GetAllLettrVoit_Tourne())
{
Page.ClientScript.RegisterArrayDeclaration("Tourne", "'"+oItem+"'");
}
......
malheureusement j'ai obtenu erreur javascript: i eu erreur:
Horodatage : 06/09/2012 11:23:03
Erreur : ReferenceError: Tourne is not defined
Fichier Source : http://xxxxxxx/Code/BackEnd/FaExped_BackEnd_WebSite/Ordre.aspx
Ligne : 5146
une idée?
Merci vous à l'avance
PS: quand je vois le code source qui a généré:
<script type="text/javascript">
//<![CDATA[
var Tourne = new Array('');
//]]>
</script>
<script type="text/javascript">
//<![CDATA[
WebForm_InitCallback();//]]>
</script>
</form>
</body>
</html>
j'ai modifié mon code:
<dx:ASPxButton ID="ASPxButton_PrintLetrVoit" runat="server" Text="Impression lettre de voiture(décalage)" AutoPostBack="False">
<ClientSideEvents Click="function (s, e) {
if(typeof(Tourne) !== 'undefined' && Tourne != null)
{
e.processOnServer = false;
for (var i = 0; i < Tourne.length; i++) {window.open('PrintLettreVoit.aspx?TourneId='+Tourne[i]);}
}
else
{alert ('Tous est coches');}
}" />
</dx:ASPxButton>
mais encore, ce n'est pas un bonne solution, parce que je ne sais pas pourquoi Tourne est indéfini?
Je chose que vous vient de déclarer 'Liste publique Tourne,' mais vous devez donner une définition avant d'utiliser cela.(Je ne suis pas un développeur .net) –
Juste une idée pour un meilleur style de codage: N'insérez pas une fonction Javascript complète dans un eventhandler. Réduit à l'appel de méthode. – reporter