Forum Clubic

Créer une alternative dans une page aspx [.NET] - .NET

Bonjour,

Je récupère dans une page aspx une valeur de la base de données dans un datagrid par <%# DataBinder.Eval(Container.DataItem,"Nom")%>.
Je souhaite tester cette valeur pour afficher autre chose.
Si nom=="Dupont"
alors nom="a
par exemple.

Merci par avance.

Pourquoi ne pas faire ça directement dans ta requête?

SELECT 
CASE Nom 
WHEN 'Dupont' THEN 'a'
ELSE Nom
END CASE AS 'foo'
FROM table

(pour la syntaxe, faut voir avec ton SGBDD).

Tu mélange le graphique et le code: avec un databind, c’est du coté de la page que tu agis.

Le mieux serait de faire un label dont tu modifie le texte suivant la valeur dans la base:

coté graphique:

<asp:label id="message" runat="server"></asp:label>

coté code(vb dans l’exemple)

Sub Page_Load(ByVal sen....)
...
if mydatatable.rows(0)("Nom")="dupont" Then
message.Text="a"
else
message.Text="b"
End if
...
End sub

moi je ferais du xslt par dessus pour etre completement esthetique ( avec aspx et ie7 sur windows vista + patch winfs )

sinon en php :


<?php echo ($rec["nom"]=="dupont"?"a":"b"); ?>

Pas besoin de surparenthéser :o

c une habitude ça permet de faire ça plus vite :

<?php echo ($rec["nom"]=="dupont"?"a":"b")."autre chose à concatener"; ?>

C’est débile.

Avec echo, tu utilise la virgule ! Et miracle :

précédence(,) < précédence(?:slight_smile:

Moralité?
echo $rec[‘nom’] == ‘dupont’ ? ‘a’:‘b’, ‘autre chose à concaténerafficher’;

C’est l’avantage d’echo sur print :slight_smile:

j’aime pas nom plus la virgule :slight_smile:

because on transforme plus facilement

echo "a"."b"; en $v="a"."b";

que

echo "a","b" en …

enfin bref j’ai des tas d’habitudes de codages comme ça dont le sur parenthesage, l’over decoupage en bloc, le saut de ligne de partout etc

c pas utile en tant que telle mais qu’est ce que ça aide quand il faut modif des code a la chaine

tss… moi je considère ce que tu fais en nombre d’opérations :

echo ‘a’, ‘b’; => stocke a, affiche ‘a’, stocke ‘b’, affiche ‘b’.
echo ‘a’ . ‘b’; => stocke ‘a’, stocke ‘b’, concaténe => ‘ab’, affiche ‘ab’.

Sur des petites variables, ça change rien, mais quand c’est much bigger si.

ça se defend aussi :slight_smile:

Clairement. Au passage, c’est un topic sur .NET… on va arrêter les frais donc :slight_smile: