• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 2150
  • Last Modified:

MaskedEditValidator not working in MultiView

Hello, everyone!

This seems like such a major bug, I am thinking I must be doing something wrong, but I can't figure out what.  I am trying to use some controls with MaskedEditExtenders and MaskedEditValidators inside a MultiView.   In this example the validator is in view A2.  I am OK going from A1 to  A2 and back to A1.  However, the second time I try to switch to A2 I get this error:

Microsoft JScript runtime error: Sys.ArgumentNullException: Value cannot be null.
Parameter name: element

If I remove the MaskedEditValidator I don't get this error.  I am using the latest version of the Ajax Controls Toolkit.  Any ideas?  



<%@ Page Language="VB" AutoEventWireup="true" CodeFile="Default.aspx.vb" Inherits="_Default" %>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
        <ajaxToolkit:ToolkitScriptManager ID="ScriptManager1" runat="server" />
        <div>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" >
<ContentTemplate>
  <asp:MultiView ID="MultiView1" runat="server" ActiveViewIndex="0"  >            
     <asp:View ID="A1" runat="server">
          This is view A1
           <div>
             <asp:TextBox ID="T2" runat="server"></asp:TextBox>
          </div>
             <asp:TextBox ID="D1012" runat="server"></asp:TextBox>  
          </div>
     </asp:View>
      <asp:View ID="A2" runat="server">
          This is view A2
          <div>
<ajaxToolkit:MaskedEditValidator ID="rfv" runat="server"
ControlExtender="maskPhone"
            ControlToValidate="TextBox1"
            ValidationExpression="^[2-9]\d{2}-\d{3}-\d{4}$"
            IsValidEmpty="true"
            InvalidValueMessage="Phone is invalid"
            Display="Dynamic"
            EmptyValueBlurredText="empty"
            InvalidValueBlurredMessage="invalid"></ajaxToolkit:MaskedEditValidator>
            <asp:TextBox ID="TextBox1" runat="server" Width="80" CssClass="TextAndNumberFonts"></asp:TextBox>
<ajaxToolkit:MaskedEditExtender ID="maskPhone" Runat="Server"
		 AutoComplete="False"
		 TargetControlID="TextBox1" 
		 Mask="999-999-9999" 
		 InputDirection="LeftToRight"
		 ClearMaskOnLostFocus="False" />
          </div>
          <div>
          <asp:TextBox ID="t1" runat="server"></asp:TextBox>
          </div>
   </asp:View>
 </asp:MultiView>
  <br/><br />
     <asp:Button ID="btnPrev2" Text="Previous"  runat="server" OnClick="btnPrev_Click" />
     <asp:Button ID="btnNext2" Text="Next" runat="server" OnClick="btnNext_Click"  />
 </ContentTemplate>
</asp:UpdatePanel>
        </div>
 
    </form>
</body>
</html>
 
 
And the codebehind:
 
Partial Class _Default
    Inherits System.Web.UI.Page
 
    Protected Sub btnPrev_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        If MultiView1.ActiveViewIndex = 0 Then
            MultiView1.ActiveViewIndex = MultiView1.Views.Count - 1
        Else
            MultiView1.ActiveViewIndex -= 1
        End If
    End Sub
 
    Protected Sub btnNext_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        If MultiView1.ActiveViewIndex = MultiView1.Views.Count - 1 Then
            MultiView1.ActiveViewIndex = 0
        Else
            MultiView1.ActiveViewIndex += 1
        End If
    End Sub
 
End Class

Open in new window

0
sophianewbie
Asked:
sophianewbie
  • 4
  • 3
1 Solution
 
SammyCommented:
Sophia,
This error will only happen in debug mode
stop the debugger and test the script in a browser, you should not see this error
I just ran your code as it is and had no problem with it as long as I am not in debug mode

0
 
sophianewbieAuthor Commented:
Sammy,
I tried it in the browser, but unfortunately, while I don't get the error, the validation doesn't work either.  If you uncheck your Disable Script Debugging option in the browser you will see that the error occurs even when not in debug mode.  It's just ignored if that option if disabled.
0
 
SammyCommented:
I dont have disable script debugging disabled and the validation worked fine for me
which version of Ajax and asp.net are you using?
0
Never miss a deadline with monday.com

The revolutionary project management tool is here!   Plan visually with a single glance and make sure your projects get done.

 
sophianewbieAuthor Commented:
ASP.NET ver. 2.0.5.0727
ASP.NET Ajax ver. 1.0
AjaxControlsToolkit.dll from 9/20/2007
0
 
SammyCommented:
Ok that explains it then
I am running VS.Net 2008 and farmework 3.5. I know there are some differences between the 2 versions in Ajax

0
 
sophianewbieAuthor Commented:
Well, we are planning to upgrade to ASP.NET 3.5, but not today :)  So, in the meantime, I'm SOL?
0
 
SammyCommented:
I am sorry but it looks like you are SOL
I dont have VS 2005 to even try anything and I just did a fresh install of windows with only .Net 3.5
0

Featured Post

The new generation of project management tools

With monday.com’s project management tool, you can see what everyone on your team is working in a single glance. Its intuitive dashboards are customizable, so you can create systems that work for you.

  • 4
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now