2010-05-22 2 views
0

J'utilise une fonction code-behind (appelée TestFx) dans mon expression de liaison. Je passe une chaîne et la fonction accepte une chaîne mais je reçois toujours une erreur d'exécution indiquant des arguments invalides. Mais si je change la méthode pour accepter un objet et inspecter la valeur, "c'est une chaîne!" Quelqu'un peut-il expliquer s'il vous plaît?La chaîne de liaison de données asp.net est transmise à la fonction mais le moteur d'exécution se produit

-Rod

ProductDescription: 
       <asp:Label ID="ProductDescriptionLabel" runat="server" 
        Text='<%# TestFx(Eval("ProductDescription")) %>' /> 
       <br /> 

Répondre

0

Le type de retour de Eval est object. Comme vous l'avez remarqué, vous pouvez changer la signature de votre méthode pour accepter un objet, ou vous pouvez typer le résultat de Eval("ProductDescription") à une chaîne:

<asp:Label ID="ProductDescriptionLabel" runat="server" 
        Text='<%# TestFx(Eval("ProductDescription").ToString()) %>' /> 
+0

ou si vous savez que l'élément sera une chaîne, vous pouvez simplement le lancer au lieu d'appeler 'ToString' – R0MANARMY

1

Une autre option est de gérer le contrôle répéteur événement ItemDataBound. Il est plus approprié si les éléments ItemTemplate nécessitent une décoration complexe

Questions connexes