I write engineering solutions in VB. In most cases they need to operate in both metric and English units of measure so I need to update labels such as °F and °C appropriately. I have a number of labels in an UpdatePanel that need this sort of update. Some need to switch between °F and °C while others betweem feet and meters. Which type of units of measure to use is known at Page_Load so I thought I could just make the Label.IDs meaningful (use lblTemp1, lblTemp2 etc for temperature units) and then update their .Text property based on their ID and the units of measure. I am almost there but I can't seem to gain access to the Text property once I ahve found a Label's whose text I want to change.
Dim iAsInteger = 0Dim myLabelAs Label
'controls I want to update are in and UpdatePanel...
ForEach ctrlAs ControlIn UpdatePanel1.Controls'check to nake sure it actually has controls first...If ctrl.HasControls()Then'cycle through all controls in the UpdatePanel...For i = 1To ctrl.Controls.Count'if this is a Label thenIfTypeOf ctrl.Controls(i)Is LabelThen'if the label ID contains "lblTemp this is a temperature unit and must be updatedIf ctrl.Controls(i).ID.ToString.Contains("lblTemp")Then'HERE IS WHERE THE PROBLEM EXISTS...'can not gain access to the Text propertymyLabel =
CType(ctrl, Label)If uofm = SIUnitsThen 'metric"°C"ElsemyLabel.Text =
"°F"EndIfEndIfEndIfNextEndIfNextmyLabel.Text =
What error do you get? Can you post your ASP.NET code?
What kind of error you are facing ??
Post it here...
The error message I currently get is due to a casting error in the line.Unable to cast object of type 'System.Web.UI.Control' to type 'System.Web.UI.WebControls.Label'.
myLabel =CType(ctrl, Label)
At this point in the code I have found a control and determined that it is in fact a Label who's Text property I need to change. However there is no Text property for the crtl so I am trying to cast the ctrl as a Label.
Jim
No comments:
Post a Comment