Apr 21, 2014, 8:37 PM
[CLOSED] [#476] BasicForm call to setValues() fails to persist DropDownField's value
Hi,
This thread is related to http://forums.ext.net/showthread.php...undefined-quot.
To observe the issue, comment out the BasicForm override, click on the "Save Form" button and then on "Reset Fields".
This thread is related to http://forums.ext.net/showthread.php...undefined-quot.
To observe the issue, comment out the BasicForm override, click on the "Save Form" button and then on "Reset Fields".
<%@ Page Language="C#" %>
<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<!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 id="Head1" runat="server">
<title>FormPanel - Ext.NET Examples</title>
<ext:ResourcePlaceHolder ID="ResourcePlaceHolder1" runat="server" Mode="Script" />
<ext:ResourcePlaceHolder ID="ResourcePlaceHolder2" runat="server" Mode="Style" />
<script>
var saveForm = function () {
DropDownField1.setValue("Changed Value");
var fieldValues = FormPanel1.getForm().getFieldValues();
FormPanel1.getForm().setValues(fieldValues);
};
Ext.form.BasicForm.override({
setValues: function (values) {
if (Ext.isArray(values)) {
for (var i = 0, len = values.length; i < len; i++) {
var v = values[i];
var f = this.findField(v.id);
if (f) {
f.setValue(v.value);
if (this.trackResetOnLoad) {
f.originalValue = f.getValue();
}
}
}
} else {
var field, id;
for (id in values) {
if (!Ext.isFunction(values[id]) && (field = this.findField(id))) {
field.setValue(values[id]);
if (this.trackResetOnLoad) {
field.originalValue = field.getValue();
// DropDownField fix
if (field instanceof Ext.net.DropDownField)
field.originalText = field.getValue();
}
}
}
}
return this;
},
});
</script>
</head>
<body>
<form id="Form1" runat="server">
<ext:ResourceManager ID="ResourceManager1" runat="server" />
<ext:FormPanel ID="FormPanel1" runat="server" Title="Form Panel" Padding="5" ButtonAlign="Left"
TrackResetOnLoad="true">
<Items>
<ext:DropDownField ID="DropDownField1" runat="server" Editable="false" FieldLabel="DropDown Field" TriggerIcon="Search" Text="Default Value">
<Component>
<ext:Panel runat="server"></ext:Panel>
</Component>
</ext:DropDownField>
</Items>
<Buttons>
<ext:Button runat="server" Text="Save Form">
<Listeners>
<Click Handler="saveForm();" />
</Listeners>
</ext:Button>
<ext:Button runat="server" Text="Reset Fields">
<Listeners>
<Click Handler="FormPanel1.getForm().reset();" />
</Listeners>
</ext:Button>
</Buttons>
</ext:FormPanel>
</form>
</body>
</html>
Last edited by Daniil; Apr 22, 2014 at 7:40 PM.
Reason: [CLOSED]