I'm running into an odd problem and think I must be missing something obvious.

I have a GridPanel and store that databound in code behind. The store saves via an UpdateProxy.

When I execute a save operation on the GridPanel I get the following error even though on refresh I can see that the save via proxy was succesful.

"Syntax Error"
Error Code: 200
Error Text: OK


Please advise.

Rick Spaulding
(early adopter)
groovepoets@hotmail.com

CODE BEHIND:
------------------------------------------------------------------
 
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Ext.Net.X.IsAjaxRequest = True Then Return
If Not Page.IsPostBack Then
Dim empStr As String = ""
Me.EmpID.Value = (Portal.Employee.ID)
empStr = (Portal.Employee.Name_First & " " & Portal.Employee.Name_Last)
empStr &= ", " & (Portal.Employee.Biz_Title)
empStr &= " - " & (Portal.Employee.Office_Loc)
Me.lblEmployee.Text = empStr
Me.WorkFlowGrid.Title = "Red Carpet Events For " & empStr
Using RC As New RedCarpetService.EmployeesService
Portal.EmployeeWorkFlow = RC.EmployeeWorkFlow_GET(Portal.Employee.ID, "RC", Portal.Employee.Biz_Unit)
Me.CompletionStore.DataSource = RC.GetLookupCode_Basic("TASK_STATUS")
Me.CompletionStore.DataBind()
End Using

RedCarpetStore.DataSource = Portal.EmployeeWorkFlow
RedCarpetStore.DataBind()
WorkFlowGrid.StoreID = RedCarpetStore.ID
WorkFlowGrid.DataBind()
End If
End Sub
Protected Sub GridRefresh()
Using RC As New RedCarpetService.EmployeesService
Portal.EmployeeWorkFlow = RC.EmployeeWorkFlow_GET(Portal.Employee.ID, "RC", Portal.Employee.Biz_Unit)
End Using

RedCarpetStore.DataSource = Portal.EmployeeWorkFlow
RedCarpetStore.DataBind()
WorkFlowGrid.StoreID = RedCarpetStore.ID
WorkFlowGrid.DataBind()
End Sub
MARKUP
----------------------------------------------------------------------------------------
 
<%@ Page Language="VB" MasterPageFile="~/RedCarpet.master" AutoEventWireup="false" CodeFile="RedCarpet.aspx.vb" Inherits="Pages_RedCarpet" title="Employee On-Boarding" %>
<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<%@ Import Namespace="System.Collections.Generic"%>
<%@ Import Namespace="ListView=Ext.Net.ListView"%>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<style type="text/css">

.dirty-row {
background: #FFFDD8;
}

.new-row {
background: #c8ffc8;
} 

.x-grid3-cell-inner {
font-family:"segoe ui",tahoma, arial, sans-serif;
}

.x-grid-group-hd div {
font-family:"segoe ui",tahoma, arial, sans-serif;
}

.x-grid3-hd-inner {
font-family:"segoe ui",tahoma, arial, sans-serif;
font-size:12px;
}

.x-grid3-body .x-grid3-td-Cost {
background-color:#f1f2f4;
}

.x-grid3-summary-row .x-grid3-td-Cost {
background-color:#e1e2e4;
} 
</style>
<script type="text/javascript">
var updateRecord = function (form) {
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.getForm().updateRecord(form.record);
};
var getRowClass = function(record) {
if (record.newRecord) {
return "new-row";
}
if (record.dirty) {
return "dirty-row";
}
};
window.lookup = [];
var clean = function() {
if (window.lookup.length > 0) {
RowExpander1.collapseAll();
Ext.each(window.lookup, function(control) {
if (control) {
control.destroy();
}
});
window.lookup = [];
}
};
var removeFromCache = function(c) {
var c = window[c];
window.lookup.remove(c);
if (c) {
c.destroy();
}
};
var addToCache = function(c) {
window.lookup.push(window[c]);
};
</script>
<script type="text/javascript">
var departmentRenderer = function(value) {
var r = CompletionStore.getById(value);
if (Ext.isEmpty(r)) {
return "";
}
return r.id;
};
</script>
<ext:Store ID="CompletionStore" runat="server" IDMode="Static">
<Reader>
<ext:JsonReader IDProperty="LookupCode" AutoDataBind="true">
<Fields>
<ext:RecordField Name="LOOKUP_CD" />
<ext:RecordField Name="DESCRIPTION" />
</Fields>
</ext:JsonReader>
</Reader>
<Listeners>
<LoadException Handler="var e = e || {message: response.responseText}; alert('Load failed: ' + e.message);" /> 
</Listeners>
</ext:Store>
<ext:Store ID="RedCarpetStore" runat="server" GroupField="TASK_DESCRIPTION" RemoteSort="true" >
<UpdateProxy>
<ext:HttpWriteProxy Method="POST" Url="../Services/RedCarpetService.asmx/SaveEmployeeWorkFlow" />
</UpdateProxy>

<Reader>
<ext:JsonReader >
<Fields>
<ext:RecordField Name="EMP_ID" />
<ext:RecordField Name="EMPLOYEE" />
<ext:RecordField Name="BUSINESS_UNIT" />
<ext:RecordField Name="WF_ID" />
<ext:RecordField Name="TASK_ID"/>
<ext:RecordField Name="TASK_DESCRIPTION" Type="String"/>
<ext:RecordField Name="STATUS_CD"/>
<ext:RecordField Name="STATUS"/>
<ext:RecordField Name="DATE_STARTED" Type="Date"/>
<ext:RecordField Name="DATE_DUE" Type="Date"/>
<ext:RecordField Name="STEP_ID"/>
<ext:RecordField Name="STEP"/>
<ext:RecordField Name="STEP_DESCR"/>
<ext:RecordField Name="RESPONSIBLE_DEPT"/>
<ext:RecordField Name="TEMPLATE_LOCATION"/>
<ext:RecordField Name="ASSIGNEE" />
<ext:RecordField Name="NOTES"/>
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
<ext:Panel ID="pnlHeader" runat="server">
<Items>
<ext:Hidden ID="EmpID" runat="server" />
<ext:Label ID="lblEmployee" runat="server" Text="" EnableTheming="true" EnableViewState="false" FieldLabel="Employee: " StyleSpec="" />
</Items>
</ext:Panel>
<ext:GridPanel ID="WorkFlowGrid" runat="server" Title="Red Carpet Workflow" Frame="true" StoreID="RedCarpetStore" AutoHeight="true" Collapsible="false" StripeRows="true" TrackMouseOver="false" ClicksToEdit="1" Icon="NoteEdit" Width="800">
<ColumnModel>
<Columns>
<ext:Column ColumnID="TaskID" DataIndex="TASK_ID" Hidden="true" />
<ext:Column ColumnID="TaskName" DataIndex="TASK_DESCRIPTION" Header="Task" />
<ext:Column ColumnID="StepID" DataIndex="STEP_ID" Hidden="true" />
<ext:Column ColumnID="Step" DataIndex="STEP" Header="Items" />
<ext:Column ColumnID="Status" DataIndex="STATUS_CD" Header="Status">
<Editor>
<ext:ComboBox 
runat="server"
Shadow="Drop"
StoreID="CompletionStore" Mode="Local"
TriggerAction="All"
ForceSelection="true" 
TypeAhead="false" Editable="false"
ValueField="LOOKUP_CD" DataIndex="STATUS_CD"
DisplayField="LOOKUP_CD" 
/>
</Editor>
</ext:Column>
<ext:DateColumn ColumnID="Due" Header="Due" DataIndex="DATE_DUE">
<Editor>
<ext:DateField runat="server" DataIndex="DATE_DUE"/>
</Editor> 
</ext:DateColumn>
<ext:Column ColumnID="AssignedTo" Header="Assignee" EmptyGroupText="" DataIndex="ASSIGNEE">
<Editor>
<ext:TextField DataIndex="ASSIGNEE" runat="server" />
</Editor>
</ext:Column>
<ext:Column ColumnID="NotesImg" Header="Notes" EmptyGroupText="..." DataIndex="NOTES">
<Editor>
<ext:HtmlEditor DataIndex="NOTES" runat="server" />
</Editor> 
</ext:Column>

</Columns>
</ColumnModel>
<View>
<ext:GroupingView 
ID="GroupingView1" 
runat="server" 
GroupByText=""
EnableGrouping="true"
EnableGroupingMenu="true"
HideGroupedColumn="true"
ForceFit="true" StartCollapsed="true"
/>
</View>
<SelectionModel>
<ext:RowSelectionModel runat="server" SingleSelect="true"/>
</SelectionModel>
<LoadMask Msg="Loading..," ShowMask="true" />
<SaveMask Msg="Saving..." ShowMask="true" /> 
<Buttons>
<ext:Button ID="Button3" runat="server" Text="Save" Icon="Disk">
<Listeners>
<Click Handler="#{WorkFlowGrid}.save();" />
</Listeners>
</ext:Button>
<ext:Button ID="Button5" runat="server" Text="Refresh" Icon="ArrowRefresh">
<DirectEvents>
<Click OnEvent="GridRefresh"/>
</DirectEvents>
</ext:Button>
</Buttons> 
</ext:GridPanel>
</asp:Content>