What I tried:
MarkUP:
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<asp:Label ID="Label1" runat="server" AssociatedControlID="TextBox2" Text="Label"></asp:Label>
<asp:SliderExtender ID="SliderExtender1" TargetControlID="TextBox2" BoundControlID="Label1" Maximum="200" Minimum="100" runat="server">
</asp:SliderExtender>
Code Behind:
protected void setImageWidth()
{
int imageWidth;
if (Label1.Text != null)
{
imageWidth = 1 * Convert.ToInt32(Label1.Text);
Image1.Width = imageWidth;
}
}
After running the page on a browser, I get the System.FormatException: Input string was not in a correct format.
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
The problem is with line
imageWidth = 1 * Convert.ToInt32(Label1.Text);
Label1.Text may or may not be int. Check.
Use Int32.TryParse(value, out number) instead. That will solve your problem.
int imageWidth;
if(Int32.TryParse(Label1.Text, out imageWidth))
{
Image1.Width= imageWidth;
}
Method 2
If using TextBox2.Text as the source for a numeric value, it must first be checked to see if a value exists, and then converted to integer.
If the text box is blank when Convert.ToInt32 is called, you will receive the System.FormatException. Suggest trying:
protected void SetImageWidth()
{
try{
Image1.Width = Convert.ToInt32(TextBox1.Text);
}
catch(System.FormatException)
{
Image1.Width = 100; // or other default value as appropriate in context.
}
}
Method 3
Because Label1.Text is holding Label which can’t be parsed into integer, you need to convert the associated textbox’s text to integer
imageWidth = 1 * Convert.ToInt32(TextBox2.Text);
Method 4
Replace with
imageWidth = 1 * Convert.ToInt32(Label1.Text);
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0