2012-11-30 37 views
1

我正在使用telerik Radbutton来充当复选框。 然而,当我点击复选框我收到A first chance exception of type 'System.InvalidCastException' occurred in Webapplicatie.dllInvalid Cast Exception radbutton telerik(oncheckedchanged)

见的asp.net代码下面的代码:

<telerik:RadButton ID="RadButton1" runat="server" Text="Hele dag" ToggleType="CheckBox" ButtonType="ToggleButton" OnCheckedChanged="RadButton1_CheckedChanged"> 
         </telerik:RadButton> 

和:

protected void RadButton1_CheckedChanged(object sender, EventArgs e) 
     { 
      try 
      { 
       if (RadButton1.Checked) 
       { 
        lbStarttijd.Visible = false; 
        lbEindtijd.Visible = false; 

        rtp_Eindtijd.Visible = false; 
        rtp_Starttijd.Visible = false; 
        //rtp_Eindtijd.Enabled = false; 
        //rtp_Starttijd.Enabled = false; 
       } 
       else 
       { 
        lbStarttijd.Visible = true; 
        lbEindtijd.Visible = true; 
        //lbEindtijd.Enabled = true; 
        //lbStarttijd.Enabled = true; 
        rtp_Eindtijd.Visible = true; 
        rtp_Starttijd.Visible = true; 
        //rtp_Eindtijd.Enabled = true; 
        //rtp_Starttijd.Enabled = true; 
       } 
      } 
      catch (Exception ex) 
      { 
       Debug.WriteLine(ex.Message + "\n" + ex.StackTrace); 
      } 
     } 

然而,最奇特的地方,它不会在我的Catch中结束。 我不明白为什么这会导致无效的转换异常。帮助赞赏:)

边注:这只发生在我点击复选框的垃圾邮件点击它。

+1

不是100%在这一个,所以我不会让它回答,但我假设你的复选框(radiobutton)导致回发,你的错误是在你的代码中的其他地方,而不是在代码中你发布了。如果可能的话,发布页面加载时触发的任何代码。 – KreepN

+0

@KreepN添加AutoPostBack =“false”不能解决问题。无论如何,请多谢:) – Rob

+2

“如果要查明发生异常的位置,可以选择Debug-> Exceptions菜单项,并在出现的对话框中选中”Common Language Runtime Exceptions“的第一个复选框。只要发生异常,调试器就会中断,而不是只处理未处理的异常。“ - 每一个线程。试一试,看看你能否得到例外。 – KreepN

回答

2

的第一步是要找到异常的根源:

“如果你想准确判断异常发生时,您可以选择调试 - >例外菜单项,然后在对话框出现时,请检查“Common Language Runtime Exceptions”的第一个复选框。

这将使发生异常时调试器中断,而不是只处理未处理的异常。 - 每一个线程。

试一试,看看你能否得到例外。