我尝试了什么:
标记:
<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>
代码背后:
protected void setImageWidth()
{
int imageWidth;
if (Label1.Text != null)
{
imageWidth = 1 * Convert.ToInt32(Label1.Text);
Image1.Width = imageWidth;
}
}
在浏览器上运行页面后,我得到System.FormatException
:输入字符串的格式不正确。
答案 0 :(得分:6)
问题在于行
imageWidth = 1 * Convert.ToInt32(Label1.Text);
Label1.Text
可能是也可能不是int。检查http://msdn.microsoft.com/en-us/library/sf1aw27b.aspx是否有异常。
请改用Int32.TryParse(value, out number)
。这将解决您的问题。
int imageWidth;
if(Int32.TryParse(Label1.Text, out imageWidth))
{
Image1.Width= imageWidth;
}
答案 1 :(得分:2)
如果使用TextBox2.Text
作为数值的来源,则必须首先检查它是否存在,然后转换为整数。
如果在调用Convert.ToInt32
时文本框为空,您将收到System.FormatException
。建议尝试:
protected void SetImageWidth()
{
try{
Image1.Width = Convert.ToInt32(TextBox1.Text);
}
catch(System.FormatException)
{
Image1.Width = 100; // or other default value as appropriate in context.
}
}
答案 2 :(得分:0)
因为Label1.Text
持有Label
无法解析为整数,所以需要将关联的文本框的文本转换为整数
imageWidth = 1 * Convert.ToInt32(TextBox2.Text);
答案 3 :(得分:0)
替换为
imageWidth = 1 * Convert.ToInt32(Label1.Text);