Hi,

i want to make the forecolor of values into a gridview red but only when
they equals 'n'.

<asp:GridView ID="GridView1" runat="server"
DataKeyNames="hour,place" DataSourceID="SqlDataSource1" >
<Columns>
<asp:CommandField ShowEditButton="True"/>
<asp:BoundField DataField="place" HeaderText="place"
ReadOnly="True" />
<asp:BoundField DataField="hour" HeaderText="hour"
ReadOnly="True" />

<asp:TemplateField HeaderText="theday">
<EditItemTemplate>
<asp:DropDownList ID="DropDownList1" SelectedValue='<%#
Bind("theday") %>' runat="server">
<asp:ListItem Text="y" Value="y"></asp:ListItem>
<asp:ListItem Text="n" Value="n"></asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Bind("theday")
%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>

</Columns>
</asp:GridView>


Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.GridViewRowEventArgs) Handles
GridView1.RowDataBound

If e.Row.RowType = DataControlRowType.DataRow Then
Dim m As String
m = e.Row.Cells(3).Text
If m = "n" Then
e.Row.Cells(3).ForeColor = Drawing.Color.Red
End If
End If
End Sub

The values are correctly rendered, i can update etc ... but the forecolor
remains black. Is this due to the template?
Thanks for help
Chris

Re: problem with e.Row.Cells() of gridview by Chris

Chris
Fri May 09 01:49:20 CDT 2008

I tested with this line:
response.write(e.Row.Cells(3).Text) which gives nothing ....
but, as i wrote, the gridview renders correctly the values.


"Chris" <ssd@qsd.dc> schreef in bericht
news:%23NXS0FVsIHA.4492@TK2MSFTNGP02.phx.gbl...
> Hi,
>
> i want to make the forecolor of values into a gridview red but only when
> they equals 'n'.
>
> <asp:GridView ID="GridView1" runat="server"
> DataKeyNames="hour,place" DataSourceID="SqlDataSource1" >
> <Columns>
> <asp:CommandField ShowEditButton="True"/>
> <asp:BoundField DataField="place" HeaderText="place"
> ReadOnly="True" />
> <asp:BoundField DataField="hour" HeaderText="hour"
> ReadOnly="True" />
>
> <asp:TemplateField HeaderText="theday">
> <EditItemTemplate>
> <asp:DropDownList ID="DropDownList1" SelectedValue='<%#
> Bind("theday") %>' runat="server">
> <asp:ListItem Text="y" Value="y"></asp:ListItem>
> <asp:ListItem Text="n" Value="n"></asp:ListItem>
> </asp:DropDownList>
> </EditItemTemplate>
> <ItemTemplate>
> <asp:Label ID="Label2" runat="server" Text='<%# Bind("theday")
> %>'></asp:Label>
> </ItemTemplate>
> </asp:TemplateField>
>
> </Columns>
> </asp:GridView>
>
>
> Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As
> System.Web.UI.WebControls.GridViewRowEventArgs) Handles
> GridView1.RowDataBound
>
> If e.Row.RowType = DataControlRowType.DataRow Then
> Dim m As String
> m = e.Row.Cells(3).Text
> If m = "n" Then
> e.Row.Cells(3).ForeColor = Drawing.Color.Red
> End If
> End If
> End Sub
>
> The values are correctly rendered, i can update etc ... but the forecolor
> remains black. Is this due to the template?
> Thanks for help
> Chris
>



Re: problem with e.Row.Cells() of gridview by Mark

Mark
Fri May 09 05:10:34 CDT 2008

"Chris" <ssd@qsd.dc> wrote in message
news:ugEdPDasIHA.4544@TK2MSFTNGP04.phx.gbl...

> I tested with this line:
> Response.Write(e.Row.Cells(3).Text) which gives nothing ....

Judging by your markup, that would be correct...

> but, as I wrote, the GridView renders correctly the values.

No doubt, but not in the way you think.

Please clarify which of the columns in the GridView (you think) corresponds
to e.Row.Cells(3)...


--
Mark Rae
ASP.NET MVP
http://www.markrae.net


Re: problem with e.Row.Cells() of gridview by Chris

Chris
Fri May 09 10:49:29 CDT 2008

Thanks for replying.
Well, i think that:
e.Row.Cells(0) is the editbutton
e.Row.Cells(1) is field 'place' (tested with response.write)
e.Row.Cells(2) is field 'hour' (tested with response.write)
so e.Row.Cells(3) is field 'theday'

May i know what you think i think?
Thanks


"Mark Rae [MVP]" <mark@markNOSPAMrae.net> schreef in bericht
news:%23GocrzbsIHA.5724@TK2MSFTNGP06.phx.gbl...
> "Chris" <ssd@qsd.dc> wrote in message
> news:ugEdPDasIHA.4544@TK2MSFTNGP04.phx.gbl...
>
>> I tested with this line:
>> Response.Write(e.Row.Cells(3).Text) which gives nothing ....
>
> Judging by your markup, that would be correct...
>
>> but, as I wrote, the GridView renders correctly the values.
>
> No doubt, but not in the way you think.
>
> Please clarify which of the columns in the GridView (you think)
> corresponds to e.Row.Cells(3)...
>
>
> --
> Mark Rae
> ASP.NET MVP
> http://www.markrae.net



Re: problem with e.Row.Cells() of gridview by Chris

Chris
Fri May 09 11:01:50 CDT 2008

I found it:

i need to use e.Row.Cells(3).FindControl("label1")


Chris" <ssd@qsd.dc> schreef in bericht
news:%2387nExesIHA.5096@TK2MSFTNGP02.phx.gbl...

> Thanks for replying.
> Well, i think that:
> e.Row.Cells(0) is the editbutton
> e.Row.Cells(1) is field 'place' (tested with response.write)
> e.Row.Cells(2) is field 'hour' (tested with response.write)
> so e.Row.Cells(3) is field 'theday'
>
> May i know what you think i think?
> Thanks
>
>
> "Mark Rae [MVP]" <mark@markNOSPAMrae.net> schreef in bericht
> news:%23GocrzbsIHA.5724@TK2MSFTNGP06.phx.gbl...
>> "Chris" <ssd@qsd.dc> wrote in message
>> news:ugEdPDasIHA.4544@TK2MSFTNGP04.phx.gbl...
>>
>>> I tested with this line:
>>> Response.Write(e.Row.Cells(3).Text) which gives nothing ....
>>
>> Judging by your markup, that would be correct...
>>
>>> but, as I wrote, the GridView renders correctly the values.
>>
>> No doubt, but not in the way you think.
>>
>> Please clarify which of the columns in the GridView (you think)
>> corresponds to e.Row.Cells(3)...
>>
>>
>> --
>> Mark Rae
>> ASP.NET MVP
>> http://www.markrae.net
>
>



Re: problem with e.Row.Cells() of gridview by Mark

Mark
Fri May 09 11:12:43 CDT 2008

"Chris" <ssd@qsd.dc> wrote in message
news:%2387nExesIHA.5096@TK2MSFTNGP02.phx.gbl...

[top-posting corrected]

>> Please clarify which of the columns in the GridView (you think)
>> corresponds to e.Row.Cells(3)...

> so e.Row.Cells(3) is field 'theday'

You mean this: ?
<asp:Label ID="Label2" runat="server" Text='<%# Bind("theday")
%>'></asp:Label>

If so, then e.Row.Cells(3).Text is always going to return an empty string.

Why? Because the field in question doesn't contain any text. It contains an
<asp:Iabel> webcontrol, which isn't the same thing at all as far as ASP.NET
is concerned...

Try this:

Dim MyLabel As Label = e.Row.Cells(3).FindControl("Label2")
Response.Write(MyLabel.Text)

The syntax may not be 100% correct as I never go anywhere near VB.NET...


--
Mark Rae
ASP.NET MVP
http://www.markrae.net