Jan 25, 2012, 7:47 PM
Problem resetting a form
Hi,
I'm trying to get the Reset button to work for my form. If the form is updated (some fields values are reassigned) within Ajax Request context with IsAjaxRequest being true, the Reset functionality doesn't work. The Reset button, when clicked, restores the form to it's pre-update state. It does work properly after a true postback on Page_Load (IsAjaxRequest=false).
In JS, the record property of the form evaluates to undefined:
Thanks,
Vadym
I'm trying to get the Reset button to work for my form. If the form is updated (some fields values are reassigned) within Ajax Request context with IsAjaxRequest being true, the Reset functionality doesn't work. The Reset button, when clicked, restores the form to it's pre-update state. It does work properly after a true postback on Page_Load (IsAjaxRequest=false).
In JS, the record property of the form evaluates to undefined:
#{FormPanel1}.getForm().record // undefined
#{FormPanel1}.record // undefined
#{FormPanel1}.getForm().updateRecord // is defined OK
The changes are committed to the database in the Save button DirectEvent as below:<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebForm1" %>
<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<script runat="server">
protected void ButtonSave_Click(object sender, DirectEventArgs e)
{
var values = JSON.Deserialize<Dictionary<string, string>>(e.ExtraParams["values"]);
foreach (var value in values)
{
// Parse the values of the form and persist them to the database here
}
// Update the form with the new values here
this.TextField1.Text="Value1";
this.TextField2.Text="Value2";
// Rest of form assignments...
}
</script>
<!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></title>
<ext:ResourcePlaceHolder ID="ResourcePlaceHolder1" runat="server" Mode="Script" />
<ext:ResourcePlaceHolder ID="ResourcePlaceHolder2" runat="server" Mode="Style" />
<link rel="stylesheet" type="text/css" href="/resources/css/main.css" />
<script type="text/javascript">
var isFormValid = function (form) {
// form.record always evaluates to undefined!!
if (form.record == null) {
return;
}
if (!form.getForm().isValid()) {
Ext.net.Notification.show({
iconCls: "icon-exclamation",
html: "Form is invalid!",
title: "Error"
});
return false;
}
// form.record evaluates to undefined!!
// form.getForm().updateRecord(form.record);
};
</head>
<body>
<form id="form1" runat="server">
<ext:ResourceManager ID="ResourceManager1" runat="server" DirectMethodNamespace="X"
IDMode="Explicit" />
<ext:Viewport ID="Viewport1" runat="server" Layout="BorderLayout">
<Items>
<ext:Panel ID="Panel1" runat="server" Height="230" Width="900" AutoScroll="true"
Region="North" Border="false" Frame="true">
<Items>
<ext:FormPanel ID="FormPanel1" runat="server" Title="" Border="false" Padding="15"
Height="210" Width="900" AutoScroll="true" ButtonAlign="Right" Frame="true">
<Items>
<ext:CompositeField ID="CompositeField1" runat="server" FieldLabel="Field 1">
<Items>
<ext:TextField ID="TextField1" runat="server" Width="160" />
<ext:DisplayField runat="server" Width="10"></ext:DisplayField>
<ext:DisplayField runat="server" Text="Field 2:" Width="120" />
<ext:TextField ID="TextField2" runat="server" Width="160" />
</Items>
</ext:CompositeField>
</Items>
<Buttons>
<ext:Button ID="ButtonSave" runat="server" Text="Save" Icon="Disk">
<DirectEvents>
<Click OnEvent="ButtonSave_Click" Before="return isFormValid(#{FormPanel1});">
<EventMask ShowMask="true" />
<ExtraParams>
<ext:Parameter Name="values" Value="#{FormPanel1}.getForm().getValues()" Mode="Raw"
Encode="true" />
</ExtraParams>
</Click>
</DirectEvents>
</ext:Button>
<ext:Button ID="ButtonReset" runat="server" Text="Reset">
<Listeners>
<Click Handler="#{FormPanel1}.getForm().reset();" />
</Listeners>
</ext:Button>
</Buttons>
</ext:FormPanel>
</Items>
</ext:Panel>
</Items>
</ext:Viewport>
</form>
</body>
</html>
I'd highly appreciate any advice or suggestions to resolve this.Thanks,
Vadym
Last edited by vadym.f; Jan 26, 2012 at 2:29 AM.