Vorrei far n modo di colorare le righe di un datagrid in modo diverso a seconda che ci sia o meno un certo valore in una cella. Ho fatto così


Sub Datagrid_itemdatabound(sender As Object, e As DataGridItemEventArgs)
If e.Item.Cells(2).Text = "2" Then
e.Item.BackColor = System.Drawing.Color.Red
e.Item.Font.Bold = True
End If
Label1.Text = Label1.Text & " " & e.Item.Cells(2).Text
End Sub

La label1, messa per prova, però non mi scrive i valori contenuti nella cella 2, cioè la terza, se non per la prima riga di intestazione.
La stessa routine, presa dall'SDK, con l'esempio dell'SDK funziona, per cui mi è venuto in mente che dipenda dal grid: in quello dell'SDSK c'erano bound clumn, nel mio - che si trova sotto - ho usato templatecolumn.

asp:datagrid id="DataGrid1" runat="server" width="80%" CellSpacing="1" GridLines="None" CellPadding="3" BackColor="White" ForeColor="Black" OnPageIndexChanged="DataGrid_Page" PageSize="15" AllowPaging="True" OnDeleteCommand="DataGrid_Delete" OnCancelCommand="DataGrid_Cancel" OnUpdateCommand="DataGrid_Update" OnEditCommand="DataGrid_Edit" OnItemCommand="DataGrid_ItemCommand" DataKeyField="idautore" AutoGenerateColumns="False" OnItemCreated="Datagrid_itemcreated" OnItemDataBound="Datagrid_itemdatabound">
<FooterStyle backcolor="#C6C3C6"></FooterStyle>
<HeaderStyle font-bold="True" forecolor="White" backcolor="#4A3C8C"></HeaderStyle>
<PagerStyle font-size="Smaller" horizontalalign="Right" backcolor="#C6C3C6" mode="NumericPages"></PagerStyle>
<ItemStyle backcolor="#DEDFDE"></ItemStyle>
<Columns>
<asp:EditCommandColumn ButtonType="LinkButton" UpdateText="Update" CancelText="Cancel" EditText="Edit">
<ItemStyle font-size="Smaller" width="10%"></ItemStyle>
</asp:EditCommandColumn>
<asp:ButtonColumn Text="Delete" CommandName="Delete">
<ItemStyle font-size="Smaller" width="10%"></ItemStyle>
</asp:ButtonColumn>
<asp:TemplateColumn HeaderText="ID">
<ItemTemplate>
<%#DataBinder.Eval(Container.DataItem, "idAutore") %>
</ItemTemplate>
<EditItemTemplate>
<asp:Label runat="server" width="20" id="idautore" text='<%# cstr(DataBinder.Eval(Container.DataItem, "idautore")) %>' />
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Nome">
<ItemTemplate>
<%#DataBinder.Eval(Container.DataItem, "Nome") %>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox runat="server" id="nome" Text='<%# cstr(DataBinder.Eval(Container.DataItem, "nome")) %>' />
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Cognome">
<ItemTemplate>
<%#DataBinder.Eval(Container.DataItem, "Cognome") %>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox runat="server" id="cognome" Text='<%# cstr(DataBinder.Eval(Container.DataItem, "cognome")) %>' />
</EditItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:datagrid>