Das rowdatabound Ereignis bietet Ihnen sicherlich die Möglichkeit, dies zu tun. Es ist ziemlich geradlinig und intuitiv zu tun. Und wie erwähnt, könnten Sie eine Template-Spalte verwenden. Ich würde wahrscheinlich verwenden nur entweder die Vorlage Spalte oder ein Bildfeld, dies zu verwalten:
<Columns>
<asp:ImageField HeaderText='Sign Off'
DataImageUrlField='<%# ThumbDisplay(Eval("SignOff")) %>' />
</Columns>
Sie dann eine Methode, wie in Ihrem Code-Behind folgenden bräuchten:
protected string ThumbDisplay(int signoff)
{
return (signoff == 1) ? "~\thumbsup.png" : "~\thumbsdown.png";
}
http://www.asp.net/learn/data-access/tutorial-12-cs.aspx hat gute Details zur Verwendung der Vorlagenspalte.
Die beste Methode ist wahrscheinlich diejenige, die zu Ihren anderen Anzeigeanforderungen passt. Müssen andere Spalten ähnlich massiert werden? Sie könnten besser in der Lage sein, alles auf einmal im rowdatabound-Event zu erledigen. Aber wenn es sich um die einzige Änderung an den Daten handelt, ist es wahrscheinlich am einfachsten, eine Vorlagenspalte oder die Bildspalte zu verwenden und die ganze Seite sauber zu halten.