2010-11-01 7 views
0

j'ai un contrôle d'image ASP.NET déclaré:valeurs de JavaScript à Passing code-behind ASP.NET

<asp:Image runat="server" ID="SortOrder" 
AlternateText="Ascending" 
ImageUrl="~/images/sort_ascending.gif" 
CssClass="Ascending" 
EnableViewState="true" 
/> 

Mon code JavaScript est:

function ReverseSort() { 
    var img = window.event.srcElement; 
    if(img.className == "Ascending") { 
     img.className = "Descending"; 
     img.alt = "Descending"; 
     img.src = "<%= ResolveClientUrl("~/images/sort_descending.gif") %>"; 
    } else { 
     img.className = "Ascending"; 
     img.alt = "Ascending"; 
     img.src = "<%= ResolveClientUrl("~/images/sort_ascending.gif") %>"; 
    } 
} 

I J'ai ajouté un attribut "onclick" au contrôle Image dans mon code-behind Page_Load comme suit:

protected void Page_Load(object sender, EventArgs e) { 
    if (IsPostBack) 
     return; 

    SortOrder.Attributes.Add("onclick", "ReverseSort()"); 
} 

Ceci est mon événement SortOrder.OnClick pour mon contrôle de l'image:

if (SortOrder.AlternateText == "Ascending") { 
    /* Sort ascending */ 
} else { 
    /* Sort descending */ 
} 

Mon problème est, le SortOrder.AlternateText est toujours "Croissant". Mon code-behind ne semble pas avoir reconnu les modifications apportées aux propriétés de mon javascript.

Répondre

1

Je ne m'attendrais pas à ce que cela fonctionne. Les attributs du contrôle côté serveur ne correspondent pas aux attributs DOM du côté client. Bien que la définition du AlternateText sur le serveur produise le texte requis alt, ce n'est pas une voie bidirectionnelle.

Ce que vous pouvez faire est d'utiliser un contrôle côté serveur caché pour garder l'état du tri. Un caché <asp:checkbox> que vous basculez via javascript le fera.

0

La seule chose renvoyée au serveur est la paire nom-valeur. Tous les attributs modifiés en utilisant javascript avec l'élément restent sur le navigateur.

+0

On dirait que nickd m'a battu en seulement quelques secondes. – pitx3

+0

nickd a également inclus la solution. Merci quand même :) – acermate433s

Questions connexes