2012-09-04 4 views
3

내가 뭘하려 :"입력 문자열이 올바른 형식이 아닙니다." 오류?

마크 업 :

<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를 얻을 수 올바른 형식이 아닙니다. Label1.Text 정수로 구문 분석 할 수없는 Label를 보유하고 있기 때문에

+1

변경 Convert.ToInt32 (TextBox2.Text)'에'Convert.ToInt32 (Label1.Text)'교체' –

+0

@AndreCalil 난 그냥하려고했지만있어 같은 오류 –

+0

'SliderExtender1'에서'Bound'와'Target' 컨트롤을 바꾸십시오 –

답변

4

문제는 라인 인 정수로 연결된 텍스트 상자의 텍스트를 변환해야

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; 
} 
0

, 당신은

imageWidth = 1 * Convert.ToInt32(TextBox2.Text); 
+0

방금 ​​시도했지만 여전히 동일한 오류가 발생했습니다. –

+1

중단 점을 넣고 TextBox2.Text 내부를 확인합니다. – Habib

0

수치 소스로 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. 
    } 
} 
0

imageWidth = 1 * Convert.ToInt32(Label1.Text); 
관련 문제