![]() |
Newbie: AJAX not working
This is my first try at using AJAX. I want the calendars to be enabled if
the user checks CheckBox1. It works OK for a normal all page refresh but once I introduced the AJAX code it stopped working. Any ideas? <%@ Page Language="VB" AutoEventWireup="false" CodeFile="default-ajax.aspx.vb" Inherits="pages_verify_groups_Default" Debug="true" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>Untitled Page</title> <style type="text/css"> .style1 { width: 950px; } .style2 { height: 36px; } </style> </head> <body> <form id="form1" runat="server"> <p> </p> <table align="center" class="style1" width="950"> <tr> <td> Account</td> </tr> <tr> <td> Navigation Bar</td> </tr> <tr> <td> </td> </tr> <tr> <td> <h2> My Account</h2> </td> </tr> <tr> <td height="0"> <h3> Settings</h3> </td> </tr> <tr> <td height="0"> <h4> </h4> </td> </tr> <tr> <td> <table> <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> <tr> <td colspan="4" class="style2"> <asp:CheckBox ID="CheckBox1" runat="server" Text=" Activate holiday range" /> </td> </tr> <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <Triggers> <asp:AsyncPostBackTrigger ControlID="CheckBox1" EventName="CheckedChanged"/> </Triggers> <ContentTemplate> <tr> <td> </td> <td> Range from:</td> <td> </td> <td> To:</td> </tr> <tr> <td> </td> <td> <asp:Calendar ID="Calendar1" runat="server" BackColor="White" BorderColor="Black" BorderStyle="Solid" CellSpacing="1" Enabled="False" Font-Names="Verdana" Font-Size="9pt" ForeColor="Black" Height="250px" NextPrevFormat="ShortMonth" Width="330px"> <SelectedDayStyle BackColor="#333399" ForeColor="White" /> <TodayDayStyle BackColor="#999999" ForeColor="White" /> <OtherMonthDayStyle ForeColor="#999999" /> <DayStyle BackColor="#CCCCCC" /> <NextPrevStyle Font-Bold="True" Font-Size="8pt" ForeColor="White" /> <DayHeaderStyle Font-Bold="True" Font-Size="8pt" ForeColor="#333333" Height="8pt" /> <TitleStyle BackColor="#333399" BorderStyle="Solid" Font-Bold="True" Font-Size="12pt" ForeColor="White" Height="12pt" /> </asp:Calendar> </td> <td> </td> <td> <asp:Calendar ID="Calendar2" runat="server" BackColor="White" BorderColor="Black" BorderStyle="Solid" CellSpacing="1" Enabled="False" Font-Names="Verdana" Font-Size="9pt" ForeColor="Black" Height="250px" NextPrevFormat="ShortMonth" Width="330px"> <SelectedDayStyle BackColor="#333399" ForeColor="White" /> <TodayDayStyle BackColor="#999999" ForeColor="White" /> <OtherMonthDayStyle ForeColor="#999999" /> <DayStyle BackColor="#CCCCCC" /> <NextPrevStyle Font-Bold="True" Font-Size="8pt" ForeColor="White" /> <DayHeaderStyle Font-Bold="True" Font-Size="8pt" ForeColor="#333333" Height="8pt" /> <TitleStyle BackColor="#333399" BorderStyle="Solid" Font-Bold="True" Font-Size="12pt" ForeColor="White" Height="12pt" /> </asp:Calendar> </td> </tr> <tr> <td> </td> <td> </td> <td> </td> <td> </td> </tr> <tr> <td colspan="4"> <asp:CheckBox ID="CheckBox2" runat="server" Text=" Comments" AutoPostBack="True" /> </td> </tr> <tr> <td class="style3"> </td> <td class="style3" colspan="3"> <asp:TextBox ID="TextBox1" runat="server" Height="181px" TextMode="MultiLine" Width="686px" Enabled="False"></asp:TextBox> </td> </tr> </ContentTemplate> </asp:UpdatePanel> <tr> <td> </td> <td> </td> <td> </td> <td> </td> </tr> </table> </td> </tr> <tr> <td> </td> </tr> </table> </form> </body> </html> Imports System.Data.SqlClient Imports System.Data Partial Class pages_verify_groups_Default Inherits System.Web.UI.Page Protected Sub CheckBox1_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged fEnableMode() End Sub Function fEnableMode() As Boolean 'Enable or disable controls Select Case CheckBox1.Checked Case True Calendar1.Enabled = True Calendar2.Enabled = True CheckBox2.Enabled = True Case Else Calendar1.Enabled = False Calendar2.Enabled = False CheckBox2.Enabled = False End Select TextBox1.Enabled = True If CheckBox2.Enabled = False Or CheckBox2.Checked = False Then TextBox1.Enabled = False End If End Function Protected Sub CheckBox2_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox2.CheckedChanged fEnableMode() End Sub Protected Sub Calendar1_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Calendar1.SelectionChanged fCalendarChange() End Sub Function fCalendarChange() As Boolean Dim strStandardOutOfOfficeText As String Dim strTo As String Dim strEnd As String strStandardOutOfOfficeText = "I am on holiday from " strTo = " to " strEnd = "." Dim strNewOutOfOfficeText As String 'If Left(TextBox1.Text, Len(strStandardOutOfOfficeText)) = strStandardOutOfOfficeText Or TextBox1.Text = "" Then strNewOutOfOfficeText = strStandardOutOfOfficeText + Calendar1.SelectedDate.ToLongDateString + strTo + Calendar2.SelectedDate.ToLongDateString TextBox1.Text = strNewOutOfOfficeText + Mid(TextBox1.Text, Len(strNewOutOfOfficeText)) + strEnd 'End If End Function Protected Sub Calendar2_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Calendar2.SelectionChanged fCalendarChange() End Sub End Class |
RE: Newbie: AJAX not working
Hi Mark,
Based on your description, I've performed some test on my side. It seems the CheckBox and Calender can work correctly with AJAX page(via UpdatePanel). here is a very simple test page I've used. ==============aspx==================== <body> <form id="form1" runat="server"><asp:ScriptManager ID="ScriptManager1" runat="server" /> <asp:CheckBox ID="CheckBox1" runat="server" AutoPostBack="True" Checked="true" /> <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <Triggers> <asp:AsyncPostBackTrigger ControlID="CheckBox1" EventName="CheckedChanged" /> </Triggers> <ContentTemplate> <br /> <br /> <br /> <asp:Calendar ID="Calendar1" runat="server"></asp:Calendar> <br /> </ContentTemplate> </asp:UpdatePanel> <div> </div> </form> </body> =============code behind================ Protected Sub CheckBox1_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged Calendar1.Enabled = CheckBox1.Checked End Sub ====================================== I think the problem might be the ASP.NET AJAX application is not configured correctly. Have you tried some other kind of AJAX postback(via updatepanel) to see whether it works? Here is the web.config content of my test project, you can also compare it with yours to see whether any configuration section is different: <<<<<<<<<< web.config <<<<<<<< <?xml version="1.0"?> <configuration> <configSections> <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensions SectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"> <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGro up, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"> <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptReso urceHandlerSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/> <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebService sSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"> <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerial izationSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="Everywhere" /> <section name="profileService" type="System.Web.Configuration.ScriptingProfileSer viceSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication" /> <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthentica tionServiceSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication" /> </sectionGroup> </sectionGroup> </sectionGroup> </configSections> <system.web> <pages> <controls> <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> </controls> </pages> <!-- Set compilation debug="true" to insert debugging symbols into the compiled page. Because this affects performance, set this value to true only during development. --> <compilation debug="false"> <assemblies> <add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> </assemblies> </compilation> <httpHandlers> <remove verb="*" path="*.asmx"/> <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFact ory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFact ory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/> </httpHandlers> <httpModules> <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> </httpModules> </system.web> <system.web.extensions> <scripting> <webServices> <!-- Uncomment this line to customize maxJsonLength and add a custom converter --> <!-- <jsonSerialization maxJsonLength="500"> <converters> <add name="ConvertMe" type="Acme.SubAcme.ConvertMeTypeConverter"/> </converters> </jsonSerialization> --> <!-- Uncomment this line to enable the authentication service. Include requireSSL="true" if appropriate. --> <!-- <authenticationService enabled="true" requireSSL = "true|false"/> --> <!-- Uncomment these lines to enable the profile service. To allow profile properties to be retrieved and modified in ASP.NET AJAX applications, you need to add each property name to the readAccessProperties and writeAccessProperties attributes. --> <!-- <profileService enabled="true" readAccessProperties="propertyname1,propertyname2" writeAccessProperties="propertyname1,propertyname2 " /> --> </webServices> <!-- <scriptResourceHandler enableCompression="true" enableCaching="true" /> --> </scripting> </system.web.extensions> <system.webServer> <validation validateIntegratedModeConfiguration="false"/> <modules> <add name="ScriptModule" preCondition="integratedMode" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> </modules> <handlers> <remove name="WebServiceHandlerFactory-Integrated" /> <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFact ory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFact ory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> </handlers> </system.webServer> </configuration> <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Sincerely, Steven Cheng Microsoft MSDN Online Support Lead Delighting our customers is our #1 priority. We welcome your comments and suggestions about how we can improve the support we provide to you. Please feel free to let my manager know what you think of the level of service provided. You can send feedback directly to my manager at: msdnmg@microsoft.com. ================================================== Get notification to my posts through email? Please refer to http://msdn.microsoft.com/subscripti...ult.aspx#notif ications. Note: The MSDN Managed Newsgroup support offering is for non-urgent issues where an initial response from the community or a Microsoft Support Engineer within 1 business day is acceptable. Please note that each follow up response may take approximately 2 business days as the support professional working with you may need further investigation to reach the most efficient resolution. The offering is not appropriate for situations that require urgent, real-time or phone-based interactions or complex project analysis and dump analysis issues. Issues of this nature are best handled working with a dedicated Microsoft Support Engineer by contacting Microsoft Customer Support Services (CSS) at http://msdn.microsoft.com/subscripti...t/default.aspx. ================================================== This posting is provided "AS IS" with no warranties, and confers no rights. -------------------- >From: "Mark B" <none@none.com> >Subject: Newbie: AJAX not working >Date: Tue, 24 Jun 2008 17:12:16 +1200 > >This is my first try at using AJAX. I want the calendars to be enabled if >the user checks CheckBox1. It works OK for a normal all page refresh but >once I introduced the AJAX code it stopped working. Any ideas? > > ><%@ Page Language="VB" AutoEventWireup="false" >CodeFile="default-ajax.aspx.vb" Inherits="pages_verify_groups_Default" >Debug="true" %> > ><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" >"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> > ><html xmlns="http://www.w3.org/1999/xhtml"> ><head runat="server"> > <title>Untitled Page</title> > <style type="text/css"> > .style1 > { > width: 950px; > } > .style2 > { > height: 36px; > } > </style> ></head> ><body> > <form id="form1" runat="server"> > <p> > </p> > <table align="center" class="style1" width="950"> > <tr> > <td> > Account</td> > </tr> > <tr> > <td> > Navigation Bar</td> > </tr> > <tr> > <td> > </td> > </tr> > <tr> > <td> > <h2> > My Account</h2> > </td> > </tr> > <tr> > <td height="0"> > <h3> > Settings</h3> > </td> > </tr> > <tr> > <td height="0"> > <h4> > </h4> > </td> > </tr> > <tr> > <td> > <table> > > <asp:ScriptManager ID="ScriptManager1" runat="server"> > </asp:ScriptManager> > > > <tr> > <td colspan="4" class="style2"> > <asp:CheckBox ID="CheckBox1" runat="server" > Text=" Activate holiday range" /> > </td> > </tr> > > <asp:UpdatePanel ID="UpdatePanel1" >runat="server"> > <Triggers> > <asp:AsyncPostBackTrigger ControlID="CheckBox1" >EventName="CheckedChanged"/> > </Triggers> > > <ContentTemplate> > <tr> > <td> > </td> > <td> > Range from:</td> > <td> > </td> > <td> > To:</td> > </tr> > <tr> > <td> > </td> > <td> > |
| All times are GMT. The time now is 02:39 AM. |
Powered by vBulletin®. Copyright ©2000 - 2013, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.