Programmatically modifying the controls in FormView's PagerTemplate

N

Nathan Sokalski

I am trying to create a FormView controls in which I access and modify the
the controls in the PagerTemplate programmatically. However, I continue to
recieve the following error:

Object reference not set to an instance of an object.

I am attempting to access the controls in my PagerTemplate using the
following code:

CType(Me.fviewPhotoAlbum.FindControl("lnkPhotoAlbum"), LinkButton)


I have tried doing this from all the events that I could think of and that I
noticed mentioned on any help sites I could find, but it didn't help. I
don't know what I am doing wrong, if anyone could help me I would greatly
appreciate it. Thanks.
 
N

Nathan Sokalski

Because this is my first time using the FormView control (although I have
had plenty of experience with the DataList control, so I have used templates
before), I tried putting it in the Page's Load eventhandler. Something that
I saw on the Internet said to put it in the FormView control's ItemCreated
eventhandler, but that didn't work either. Here is the code I have in my
Page's Load eventhandler:

Private Sub index_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Handles Me.Load

Dim photoalbum As New DataTable

Dim dataadapterSelect As New System.Data.OleDb.OleDbDataAdapter("SELECT *
FROM babyphotos ORDER BY photodate,filename",
System.Configuration.ConfigurationManager.AppSettings("connectionstring"))

dataadapterSelect.Fill(photoalbum)

Me.fviewPhotoAlbum.DataSource = photoalbum

Me.fviewPhotoAlbum.DataBind()

'Hide unnecessary numeric LinkButtons

For i As Integer = 1 To 10

CType(Me.fviewPhotoAlbum.FindControl("lnkPhotoAlbum" & CStr(i)),
LinkButton).Visible = (i <= photoalbum.Rows.Count)

Next

End Sub


The basic goal of this code is to not show more numeric controls than
necessary (I don't want to show 10 controls if there are only 5 records).
Here is my FormView control:

<asp:FormView ID="fviewPhotoAlbum" runat="server" AllowPaging="True"
HorizontalAlign="Center">

<PagerSettings NextPageImageUrl="images/NextBtn.gif"
PreviousPageImageUrl="images/PrevBtn.gif" Mode="NextPrevious"/>

<rowstyle HorizontalAlign="Center"/>

<ItemTemplate>

<asp:Image ID="imgPhoto" runat="server" BorderWidth="0px"
ImageAlign="Middle" ImageUrl='<%#
DataBinder.Eval(Container,"DataItem.filename","images/photoalbum/{0}")
%>'/><br/>

<asp:Label ID="lblPhotoCaption" runat="server"
AssociatedControlID="imgPhoto" Text='<%#
DataBinder.Eval(Container,"DataItem.caption") %>'/><br/>

<asp:Label ID="lblPhotoDate" runat="server" AssociatedControlID="imgPhoto"
Text='<%# DataBinder.Eval(Container,"DataItem.photodate","Photo taken on:
{0:D}") %>'/>

</ItemTemplate>

<PagerTemplate>

<asp:ImageButton ID="imgPrevious" runat="server" AlternateText="Previous
Photo" BorderWidth="0px" CausesValidation="False" CommandArgument="Prev"
CommandName="Page" Height="35px" ImageUrl="images/PrevBtn.gif"
Width="35px"/>&nbsp;

<asp:LinkButton ID="lnkPhotoAlbum1" runat="server" CausesValidation="false"
CommandName="Page"/>

<asp:LinkButton ID="lnkPhotoAlbum2" runat="server" CausesValidation="false"
CommandName="Page"/>

<asp:LinkButton ID="lnkPhotoAlbum3" runat="server" CausesValidation="false"
CommandName="Page"/>

<asp:LinkButton ID="lnkPhotoAlbum4" runat="server" CausesValidation="false"
CommandName="Page"/>

<asp:LinkButton ID="lnkPhotoAlbum5" runat="server" CausesValidation="false"
CommandName="Page"/>

<asp:LinkButton ID="lnkPhotoAlbum6" runat="server" CausesValidation="false"
CommandName="Page"/>

<asp:LinkButton ID="lnkPhotoAlbum7" runat="server" CausesValidation="false"
CommandName="Page"/>

<asp:LinkButton ID="lnkPhotoAlbum8" runat="server" CausesValidation="false"
CommandName="Page"/>

<asp:LinkButton ID="lnkPhotoAlbum9" runat="server" CausesValidation="false"
CommandName="Page"/>

<asp:LinkButton ID="lnkPhotoAlbum10" runat="server" CausesValidation="false"
CommandName="Page"/>&nbsp;

<asp:ImageButton ID="imgNext" runat="server" AlternateText="Next Photo"
BorderWidth="0px" CausesValidation="False" CommandArgument="Next"
CommandName="Page" Height="35px" ImageUrl="images/NextBtn.gif"
Width="35px"/>

</PagerTemplate>

</asp:FormView>


Thanks.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,011
Latest member
AjaUqq1950

Latest Threads

Top