Solved

FormView FindControl on TextBox Returning Nulls

Posted on 2009-07-01
6
733 Views
Last Modified: 2012-05-07
I am trying to reference three textboxes inside a formview to read their values and calculate a value to assign to a Label in the same formview. When I try to references any of the objects needed using the findcontrol method of the formview, it simply returns nulls (Object reference not set to an instance of an object).


Private Sub AllowanceFormView_DataBound(ByVal sender As Object, ByVal e As System.EventArgs) Handles AllowanceFormView.DataBound

        If AllowanceFormView.CurrentMode = FormViewMode.Edit Then

            Dim HalfYearlyCarryOverLabel As Label = AllowanceFormView.FindControl("EditHalfYearlyCarryOverLabel")

            Dim BroughtForwardTextBox As TextBox = AllowanceFormView.FindControl("BroughtForwardTextBox")

            Dim JulAmountVouchedTextBox As TextBox = AllowanceFormView.FindControl("JulAmountVouchedTextBox")

            Dim JulAllocationTextBox As TextBox = AllowanceFormView.FindControl("JulAllocationTextBox")
 

            HalfYearlyCarryOverLabel.Text = (CInt(BroughtForwardTextBox.Text) + CInt(JulAmountVouchedTextBox.Text)) - CInt(JulAllocationTextBox.Text)

        End If

End Sub

Open in new window

0
Comment
Question by:AusBoyz
  • 3
  • 2
6 Comments
 
LVL 18

Expert Comment

by:David Robitaille
Comment Utility
I did it ofen and it should work.
Does the textboxes are inside something else?
(please send some code from the aspx)
0
 
LVL 13

Expert Comment

by:drypz
Comment Utility
Hi! Try this one.



Private Sub AllowanceFormView_DataBound(ByVal sender As Object, ByVal e As System.EventArgs) Handles AllowanceFormView.DataBound

        If AllowanceFormView.CurrentMode = FormViewMode.Edit Then

			For i As Integer = 0 To AllowanceFormView.items.count

			

				Dim HalfYearlyCarryOverLabel As Label = AllowanceFormView.items(i).FindControl("EditHalfYearlyCarryOverLabel")

				Dim BroughtForwardTextBox As TextBox = AllowanceFormView.items(i).FindControl("BroughtForwardTextBox")

				Dim JulAmountVouchedTextBox As TextBox = AllowanceFormView.items(i).FindControl("JulAmountVouchedTextBox")

				Dim JulAllocationTextBox As TextBox = AllowanceFormView.items(i).FindControl("JulAllocationTextBox")

			

			Next

		 

            HalfYearlyCarryOverLabel.Text = (CInt(BroughtForwardTextBox.Text) + CInt(JulAmountVouchedTextBox.Text)) - CInt(JulAllocationTextBox.Text)

        End If

End Sub

Open in new window

0
 
LVL 18

Expert Comment

by:David Robitaille
Comment Utility
drypz:, i see what you are trying to do, but there is some bugs in this algorithm.
the object will be set back nothing if the correct item is not the last one and they are declared inside the for-next loop, so they wont be accessible outside it.
but this could be help to troubleshoot and find the conintainer of the textboxs...
0
Free Trending Threat Insights Every Day

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

 

Author Comment

by:AusBoyz
Comment Utility
davrob60:

The TextBoxes are inside a FormView, and only inside an EditItemTemplate. Nothing else.



If I add the supplied code above to a Button's onClick event, the code works just fine. So I am able to reference them within a Button onClick event, just not the FormView DataBound event. This is unfortunately as I would like to calculate these fields automatically, and not require the user to click a Button to calculate them.
0
 
LVL 18

Accepted Solution

by:
David Robitaille earned 250 total points
Comment Utility
OK, then it should work, as i said, i got code like that that run smoothly.
I included some of my code just to prove you that it should work. (i cast them with CType, but it should not change anything)
The only thing i could say is to double check your ID, you may have mistyped "JulAllocationTextBox" or any others.
on other thing, does any of those textbox is dynamically created?

 Protected Sub TemplateFormView_DataBound(ByVal sender As Object, ByVal e As System.EventArgs) Handles TemplateFormView.DataBound
 

        '****show the insert or update button as the form mode***

        If TemplateFormView.CurrentMode = FormViewMode.Edit Or _

            TemplateFormView.CurrentMode = FormViewMode.Insert Then

            'get the buttons

            Dim InsertButtonTop As LinkButton = CType(TemplateFormView.FindControl("InsertButtonTop"), LinkButton)

            Dim InsertButtonBottom As LinkButton = CType(TemplateFormView.FindControl("InsertButtonBottom"), LinkButton)

            Dim InsertCancelButtonTop As HyperLink = CType(TemplateFormView.FindControl("InsertCancelButtonTop"), HyperLink)

            Dim InsertCancelButtonBottom As HyperLink = CType(TemplateFormView.FindControl("InsertCancelButtonBottom"), HyperLink)

            Dim InsertCancelButtonTop As HyperLink = CType(TemplateFormView.FindControl("InsertCancelButtonTop"), HyperLink)

            Dim InsertCancelButtonBottom As HyperLink = CType(TemplateFormView.FindControl("InsertCancelButtonBottom"), HyperLink)

Open in new window

0
 

Author Closing Comment

by:AusBoyz
Comment Utility
The CType() was it!

Thank you very much for your help davrob!

0

Featured Post

What Is Threat Intelligence?

Threat intelligence is often discussed, but rarely understood. Starting with a precise definition, along with clear business goals, is essential.

Join & Write a Comment

Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
Whether you've completed a degree in computer sciences or you're a self-taught programmer, writing your first lines of code in the real world is always a challenge. Here are some of the most common pitfalls for new programmers.
An introduction to basic programming syntax in Java by creating a simple program. Viewers can follow the tutorial as they create their first class in Java. Definitions and explanations about each element are given to help prepare viewers for future …
In this fourth video of the Xpdf series, we discuss and demonstrate the PDFinfo utility, which retrieves the contents of a PDF's Info Dictionary, as well as some other information, including the page count. We show how to isolate the page count in a…

743 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now