Fetching control values from a gridview TemplateField
by msch.prv@gmail.com on 1/2/2008 10:52:00 PM
I have a gridview wich contains a mix of boundfields and
templatefields. While the boundfields can be retrieved w/o problems, I
am at a loss to get the values of the template fields. I googled
around and tried various methods to no avail.
TIA for any pointers.
Protected Sub grdOrders_SelectedIndexChanged(ByVal sender As Object,
ByVal e As System.EventArgs)
Dim rowIdx As Integer = Me.grdOrders.SelectedRow.RowIndex
Dim strTmp As String
strTmp = Me.grdOrders.Rows(rowIdx).Cells(0).Text ' first column
strTmp = Me.grdOrders.Rows(rowIdx).Cells(1).Text ' Works OK
strTmp = CType(Me.grdOrders.Rows(rowIdx).FindControl("lblUser"),
Label).Text ' Empty
strTmp = CType(Me.grdOrders.Rows(rowIdx).Cells(2).Controls(1),
Label).Text ' Empty
strTmp =
CType(Me.grdOrders.Rows(rowIdx).Cells(2).Controls(1).FindControl("lblUser"),
Label).Text ' Empty
End Sub
<asp:GridView ID="grdOrders" DataKeyNames="OBaseID"
DataSourceID="sdsCustOrders"
runat="server" AllowSorting="True"
OnSelectedIndexChanged="grdOrders_SelectedIndexChanged">
<Columns>
<asp:CommandField ShowSelectButton="True" />
<asp:BoundField DataField="UserName" HeaderText="Status" />
<asp:TemplateField HeaderText="User" >
<ItemTemplate>
<asp:Label ID="lblUser" runat="server"><%#Eval("UserName")%></
asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
Re: Fetching control values from a gridview TemplateField
by Eliyahu Goldin on 1/3/2008 7:17:00 PM
Your FindControl call is fine. The problem could be that Label.Text doesn't
come back in the postback. Replace the label with a textbox and see if it
works.
--
Eliyahu Goldin,
Software Developer
Microsoft MVP [ASP.NET]
http://msmvps.com/blogs/egoldin
http://usableasp.net
<msch.prv@gmail.com> wrote in message
news:b164cc2b-c947-4391-8c51-63f337542a73@f3g2000hsg.googlegroups.com...
>I have a gridview wich contains a mix of boundfields and
> templatefields. While the boundfields can be retrieved w/o problems, I
> am at a loss to get the values of the template fields. I googled
> around and tried various methods to no avail.
>
> TIA for any pointers.
>
> Protected Sub grdOrders_SelectedIndexChanged(ByVal sender As Object,
> ByVal e As System.EventArgs)
> Dim rowIdx As Integer = Me.grdOrders.SelectedRow.RowIndex
> Dim strTmp As String
>
> strTmp = Me.grdOrders.Rows(rowIdx).Cells(0).Text ' first column
> strTmp = Me.grdOrders.Rows(rowIdx).Cells(1).Text ' Works OK
> strTmp = CType(Me.grdOrders.Rows(rowIdx).FindControl("lblUser"),
> Label).Text ' Empty
> strTmp = CType(Me.grdOrders.Rows(rowIdx).Cells(2).Controls(1),
> Label).Text ' Empty
> strTmp =
> CType(Me.grdOrders.Rows(rowIdx).Cells(2).Controls(1).FindControl("lblUser"),
> Label).Text ' Empty
> End Sub
>
> <asp:GridView ID="grdOrders" DataKeyNames="OBaseID"
> DataSourceID="sdsCustOrders"
> runat="server" AllowSorting="True"
> OnSelectedIndexChanged="grdOrders_SelectedIndexChanged">
> <Columns>
> <asp:CommandField ShowSelectButton="True" />
>
> <asp:BoundField DataField="UserName" HeaderText="Status" />
>
> <asp:TemplateField HeaderText="User" >
> <ItemTemplate>
> <asp:Label ID="lblUser" runat="server"><%#Eval("UserName")%></
> asp:Label>
> </ItemTemplate>
> </asp:TemplateField>
> </Columns>
> </asp:GridView>
Re: Fetching control values from a gridview TemplateField
by msch.prv@gmail.com on 1/2/2008 11:51:00 PM
Right on the bull's eye, Eliyahu! Thank you very much! I spent quite a
few hours trying to figure this out.
Happy New Year!
Re: Fetching control values from a gridview TemplateField
by msch.prv@gmail.com on 1/3/2008 12:01:00 AM
Right on the bull's eye, Eliyahu! Thank you very much!
Happy New Year.