I know I can do this with javascript if I iterate my controls and build up some kind of comma separated string holding all the form values and send that to the server as a page method call, but because the form is quiet complicated (nested data lists and grid views), it would be much easier if I could just write the "Save" logic 1 time in the code behind (when the user clicks "Done") and reuse that same code for the auto save.
I was thinking maybe I could somehow use the rad ajax manager to cause an async postback of the page that the user wouldn't notice, and it wouldn't update any controls.
Is this possible?
7 Answers, 1 is accepted
A simple solution in this scenario would be to add an asp Timer wrapped in a RadAjaxPanel control on your page and save your data in the OnTick event of the timer. If the timer is the only control wrapped in the panel, nothing will be refreshed on your page during the callbacks that it makes.
<
telerik:RadAjaxPanel
ID
=
"RadAjaxPanel1"
runat
=
"server"
>
<
asp:Timer
ID
=
"Timer1"
runat
=
"server"
OnTick
=
"Timer1_Tick"
Interval
=
"3000"
/>
</
telerik:RadAjaxPanel
>
Greetings,
Tsvetina
the Telerik team
I have a similar problem. After saving the page every few minutes, the page return to the top of the page and the focus is lost from the currently editing field.
Inserting the timer alone in a separate updatePanel (PanelAutoSave, after PanelContent) didn't solve the problem.
In my scenario (Version 2013.3.1324.35 on .Net 3.5) I'm using a MasterPage. So I register the AJAX event in the ServerSide-Code of the page:
myMaster.masterAjaxManager.AjaxSettings.AddAjaxSetting(PanelContent, PanelContent, LoadingPanel);
myMaster.masterAjaxManager.AjaxSettings.AddAjaxSetting(Timer1, PanelAutoSave);
The page itself contains dynamically added TextBoxes and other controls (no RadEditor), all in one Panel (PanelContent)). Both panels are inside the <asp:Content ContentPlaceHolder...></Content>.
Is the MasterPage the problem, or is it the dynamically builded Panel which is rebuild every Postback, or is there something else I'm missing?
Thanks for your suggestion
Markus
Note that by default RadAjaxPanel maintains the focus of the AJAX-ified control when the response ends. Therefore instead of using RadAjaxManager to ajaxify the controls on the page please remove the RadAjaxManager and wrap the whole content in RadAjaxPanel and verify how it goes.
Regards,
Maria Ilieva
Telerik
Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.
Thanks for your answer.
What I now did:
I removed the registration of all controls (the two panels) on this page to the Masterpage-RadAjaxManager.
I left the timer in a separate Panel, and the dynamic controls stayed in an other Panel.
Now it works without jumping to the top of the page and it is not longer loosing the focus when a auto-save occurs.
Thanks.
Kind regards
Markus
Thank you for getting back to us and for providing the updates on this case.
Do not hesitate to open a new form thread or a support ticket in case further assistance is needed.
Regards,
Maria Ilieva
Telerik
Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.
[quote]Iam developing a page where we have RadMultiPage and in one RadPageView i want autosave functionality. Can I know how can we do it.
Please find my code here
<telerik:RadPageView ID="rpvStuentInfo" runat="server">
<div class="row"></div><br /><br /><br />
<div class="large-6 columns">
<label style="font-size:20px">Your Nominations.</label>
</div>
<div class="large-6 columns" align="right">
<label>Teacher Name</label>
</div>
<div class="row">
<div class="large-6 columns">
<label>Nominate up to 10 students.</label>
</div>
<div class="large-6 columns" align="right">
<label>Teacher ID</label>
</div>
</telerik:RadPageView>
<telerik:RadPageView runat="server" ID="rpvMentorProfile">
<div class="row" id="trRbError" visible="false" runat="server">
<div class="large-12 columns">
<asp:Label ID="lblRbError" runat="server" CssClass="errorMsgText" Visible="false" Text=""></asp:Label>
</div>
</div>
<div class="row">
<div class="large-2 columns">
<%--<Label ID="lblNomrPrefix" runat="server" AssociatedControlID="cmbNomrPrefix">Prefix:<span style="color: Red">*</span></Label>--%>
<asp:DropDownList ID="cmbNomrPrefix" runat="server" DefaultMessage="Select a Prefix">
<Items>
<asp:ListItem Value="select" Text="Prefix*" />
<asp:ListItem Value="Mr." Text="Mr." />
<asp:ListItem Value="Ms." Text="Ms." />
<asp:ListItem Value="Mrs." Text="Mrs." />
<asp:ListItem Value="Miss." Text="Miss." />
<asp:ListItem Value="Dr." Text="Dr." />
<asp:ListItem Value="Sr." Text="Sr." />
<asp:ListItem Value="Prof." Text="Prof." />
<asp:ListItem Value="Other." Text="Other." />
</Items>
</asp:DropDownList>
<asp:RequiredFieldValidator ID="rfvPreFix" ErrorMessage="Please select Prefix."
ControlToValidate="cmbNomrPrefix" runat="server" SetFocusOnError="true"
Display="None" ValidationGroup="mentordemographics" InitialValue="select" CssClass="errorMsgText" Text="*">
</asp:RequiredFieldValidator>
</div>
<%--</div>
<div class="row">--%>
<div class="large-5 columns">
<%--<Label ID="lblNomrFirstName" runat="server" AssociatedControlID="txtNomrFirstName">First Name:<span style="color: Red">*</span></Label>--%>
<telerik:RadTextBox ID="txtNomrFirstName" autocomplete="false" runat="server" Skin="" Width="100%" Text="" EmptyMessage="First Name*" ></telerik:RadTextBox>
<asp:RequiredFieldValidator ID="rfvFirstName" ErrorMessage="Enter your First Name."
ControlToValidate="txtNomrFirstName" runat="server" SetFocusOnError="true"
Display="None" ValidationGroup="mentordemographics" CssClass="errorMsgText" ShowSummary="true" Text="*">
</asp:RequiredFieldValidator>
</div>
<%-- </div>
<div class="row">--%>
<div class="large-5 columns">
<%--<Label ID="lblNomrLastName" runat="server" AssociatedControlID="txtNomrLastName">Last Name:<span style="color: Red">*</span></Label>--%>
<telerik:RadTextBox ID="txtNomrLastName" autocomplete="false" runat="server" Skin="" Width="100%" Text="" EmptyMessage="Last Name*"></telerik:RadTextBox>
<asp:RequiredFieldValidator ID="rfvLastName" ErrorMessage="Enter your Last Name."
ControlToValidate="txtNomrLastName" runat="server" SetFocusOnError="true"
Display="None" Text="*" ValidationGroup="mentordemographics" CssClass="errorMsgText">
</asp:RequiredFieldValidator>
</div>
</div>
</telerik:RadPageView>
[/quote]