asp.net, requiredfieldvalidator disabling events on code behind -


i'm using visual studio 2010 framework 3.5 , ajax control toolkit .net 3.5.

i working on asp.net web forms website.

on form have this: textbox, imagebutton, button, calendar , requiredfieldvalidator:

<asp:content id="content2" contentplaceholderid="contentplaceholder1" runat="server">     <p>         <br />         <asp:toolkitscriptmanager id="toolkitscriptmanager1" runat="server"> </asp:toolkitscriptmanager>  <asp:label id="label3" runat="server">date</asp:label>                         <asp:textbox id="txtinitialdate" runat="server" width="75px" maxlength="10"></asp:textbox>                              <asp:imagebutton id="imgbegin"              imageurl="~/images/icon1.jpeg" runat="server"                                 alternatetext="" height="24px" width="24px"   />          <asp:calendarextender id="calendarextender1" runat="server"         targetcontrolid="txtinitialdate"         popupposition="bottomleft" popupbuttonid="imgbegin"         >         </asp:calendarextender>          <asp:requiredfieldvalidator id="requiredfieldvalidator1" runat="server" errormessage="*" controltovalidate="txtinitialdate"                             display="dynamic"></asp:requiredfieldvalidator>  <asp:button id="button2" runat="server" text="send" onclick="button2_click"></asp:button> </asp:content> 

code behind:

override protected void oninit(eventargs e) { button2.attributes.add("onclick", "javascript:" + button2.clientid + ".disabled=true;"     + "javascript:" + button2.clientid + ".value='processing.';" + this.getpostbackeventreference(button2) + ";"); base.oninit(e); }   protected void button2_click(object sender, eventargs e) { string = "some_value"; } 

the interaction here user clicks on imagebutton, calendar shows, user clicks on date , hits button.

the problem:

if run website , click on imagebutton first , pick date, when button clicked no events fired.

but if comment code of validator:

<asp:requiredfieldvalidator id="requiredfieldvalidator1" runat="server" errormessage="*" controltovalidate="txtinitialdate"                             display="dynamic"></asp:requiredfieldvalidator> 

then events fired correctly.

i want able use requiredfieldvalidator, don't want create conflict button

why happening , how can solve this?

thanks...

use causesvalidation=false in image button markup:

<asp:imagebutton id="imgbegin" causesvalidation="false" imageurl="~/images/icon1.jpeg" runat="server"  height="24px" width="24px" /> 

you can add javascript button2 in markup (instead of oninit code-behind). use onclientclick attribute in button2 mark up


Comments