2008-12-19 7 views
0

Donc, je veux utiliser jquery pour définir le texte d'un bouton, en fonction de la valeur d'une propriété dans la rangée actuelle d'un répéteur.En .aspx, comment passer une valeur de asp: Répéteur au code derrière la fonction

J'ai besoin d'appeler une fonction dans le code-behind pour mapper la valeur au texte que le bouton devrait avoir. Donc, je dois passer à ma fonction foo, la valeur de chaîne de la propriété UserStatus pour l'élément actuel dans le répéteur.

Je veux faire ce qui suit, bien que cette syntaxe est évidemment pas correcte:

<asp:Repeater ID="dgCustomer" runat="server"> 
    <ItemTemplate> 
    <input id="rb" name="rb" type="radio" onclick='javascript:$("input.magicbutton").val("<%= foo(DataBinder.Eval(Container.DataItem, "UserStatus")) %>");' 

Si le codebehind contient la définition de méthode suivante:

protected string foo(string status) 

Quelle est la syntaxe correcte pour appeler foo avec une valeur d'article du répéteur?

+0

Ceci est une bonne réponse pour "Comment appeler la fonction C# de aspx". – Eddie

Répondre

2

Changez le <% = avec <% # et il semble que vous devriez être prêt à partir.

+0

Je ne savais pas que je pouvais le faire, merci. –

+1

<% # correspond aux expressions à évaluer pendant la liaison de données. <% = est à peu près équivalent à Response.Write et peut être utilisé presque n'importe où en dehors des contextes de liaison de données. –

1

Le seul problème que je vois avec cet extrait de code est que vous devez utiliser un nugget de liaison de données (<%# ... %>) au lieu du nugget d'expression (<%= ... %>).

Vous pouvez rencontrer des problèmes pour entourer votre nugget avec des guillemets, car il contient déjà des guillemets. Vous devrez peut-être foo retourner la valeur entre guillemets, ou même avoir foo juste retourner l'événement entier onclick ...

Questions connexes