10

私が試したこと:

マークアップ:

 <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。入力文字列が正しい形式ではありませんでした。

4

4 に答える 4

13

問題はラインにあります

imageWidth = 1 * Convert.ToInt32(Label1.Text);

Label1.Textintである場合とそうでない場合があります。チェックしてください

Int32.TryParse(value, out number)代わりに使用してください。それはあなたの問題を解決します。

int imageWidth;
if(Int32.TryParse(Label1.Text, out imageWidth))
{
    Image1.Width= imageWidth;
}
于 2012-09-04T18:30:35.550 に答える
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.
   }
}
于 2012-09-04T18:30:54.653 に答える
0

Label1.Textは整数に解析できない保持しているためLabel、関連するテキストボックスのテキストを整数に変換する必要があります

imageWidth = 1 * Convert.ToInt32(TextBox2.Text);
于 2012-09-04T18:23:59.500 に答える
0

と置換する

imageWidth = 1 * Convert.ToInt32(Label1.Text);
于 2012-09-04T18:32:09.087 に答える