[CLOSED] AjaxProxy Problem with Date fields on update

  1. #1

    [CLOSED] AjaxProxy Problem with Date fields on update

    Hello again,

    in the store example below we have a problem with the update calls to the server.
    The problem is that when you have a date field on a grid and you edit the field by setting its value to null and then do a sync, the ajaxproxy does not include the date field (and it's null value) in the updated header parameters.
    This behavior only happens to date fields. On string and boolean fields that i have tested, it works fine.
    This is a big problem because there is no way to know when you need to update the date field.

    This works fine in extjs version 4.2.
    Ext.Net version is 2.2

        <ext:Store ID="store_users" runat="server" AutoSync="false" RemoteSort="true" RemoteFilter="true" PageSize="20"  >
            <Model>
              <ext:Model ID="model_users" runat="server" IDProperty="UserId">
                  <Fields>
                      <ext:ModelField Name="UserId" Type="String" />
                      <ext:ModelField Name="UserDateCreated" Type="Date" />
                      <ext:ModelField Name="UserLoginName" Type="String" />
                      <ext:ModelField Name="UserLastName" Type="String" />
                      <ext:ModelField Name="UserFirstName" Type="String" />
                      <ext:ModelField Name="UserPersonName" Type="String" />
                      <ext:ModelField Name="UserEMail" Type="String" />
                      <ext:ModelField Name="UserActive" Type="Boolean" />
                      <ext:ModelField Name="UserDeleted" Type="Boolean" />
                      <ext:ModelField Name="UserDomain" Type="String" />
                      <ext:ModelField Name="UserLastNameGR" Type="String" />
                      <ext:ModelField Name="UserFirstNameGR" Type="String" />
                  </Fields>
                  <Proxy>
                      <ext:AjaxProxy Json="true" Url="users.ashx"   >
                      <Reader>
                        <ext:JsonReader Root="data" SuccessProperty="success" MessageProperty="message" TotalProperty="total" />
                      </Reader>
                      <Writer>
                        <ext:JsonWriter Encode="true" WriteAllFields="true" Root="data" AllowSingle="false" />
                      </Writer>
                      <Listeners>
                        <Exception Fn="proxy_sync_error" />
                      </Listeners>
                    </ext:AjaxProxy>
                  </Proxy>
              </ext:Model>
            </Model>
    
    
        </ext:Store>
        
        <ext:Viewport ID="Viewport1" runat="server" Layout="BorderLayout">
            <Items>
                <ext:GridPanel
                    ID="GridPanel1" runat="server" Region="Center" Title="Users" ForceFit="true" 
                    StoreID="store_users"
                    Frame="true">
                    <TopBar>
                      <ext:Toolbar runat="server">
                        <Items>
                            <ext:Button ID="Button5" runat="server" Text="Load" Icon="ArrowRefresh">
                                <Listeners>
                                    <Click Handler="#{store_users}.load();" />
                                </Listeners>
                            </ext:Button>
                            <ext:Button ID="Button1" runat="server" Text="Insert" Icon="Add">
                                <Listeners>
                                    <Click Handler="#{store_users}.insert(0, {}); #{GridPanel1}.editingPlugin.startEditByPosition({row:0, column:0});" />
                                </Listeners>
                            </ext:Button>
                                
                            <ext:Button ID="btnDelete" runat="server" Text="Delete" Icon="Delete" Disabled="true">
                                <Listeners>
                                    <Click Handler="#{GridPanel1}.deleteSelected();
                                                    if (!#{GridPanel1}.hasSelection()) {
                                                        #{btnDelete}.disable();
                                                    }" />
                                </Listeners>
                            </ext:Button>
                                
                            <ext:Button ID="Button2" runat="server" Text="Save" Icon="Disk">
                                <Listeners>
                                    <Click Fn="save" />
                                </Listeners>
                            </ext:Button>
                                
                            <ext:Button ID="Button3" runat="server" Text="Clear" Icon="Cancel">
                                <Listeners>
                                    <Click Handler="#{GridPanel1}.getSelectionModel().deselectAll();;
                                                    if (!#{GridPanel1}.hasSelection()) {
                                                        #{btnDelete}.disable();
                                                    }" />
                                </Listeners>
                            </ext:Button>
                        </Items>
                      </ext:Toolbar>
                    </TopBar>
                    <ColumnModel ID="ColumnModel1" runat="server">
                        <Columns>
                            <ext:Column ID="Column1" runat="server" DataIndex="UserId" Text="UserID" Visible="false" />
    
                            <ext:Column ID="Column2" runat="server" DataIndex="UserLoginName" Text="Login Name">
                                <Editor>
                                    <ext:TextField ID="TextField2" runat="server" />
                                </Editor>
                            </ext:Column>
                            <ext:Column ID="Column3" runat="server" DataIndex="UserLastName" Text="Last Name">
                                <Editor>
                                    <ext:TextField ID="TextField3" runat="server" />
                                </Editor>
                            </ext:Column>
                            <ext:Column ID="Column4" runat="server" DataIndex="UserFirstName" Text="First Name">
                                <Editor>
                                    <ext:TextField ID="TextField1" runat="server" />
                                </Editor>
                            </ext:Column>
                            <ext:Column ID="Column5" runat="server" DataIndex="UserPersonName" Text="Person Name">
                                <Editor>
                                    <ext:TextField ID="TextField4" runat="server" />
                                </Editor>
                            </ext:Column>
                            <ext:Column ID="Column6" runat="server" DataIndex="UserEMail" Text="Email" Editable="true" >
                                <Editor>
                                    <ext:TextField ID="TextField5" runat="server" />
                                </Editor>
                            </ext:Column>
                            
                            <ext:CheckColumn ID="Column7" runat="server" DataIndex="UserActive" Text="Active" Editable="true" Width="50" />
                            <ext:CheckColumn ID="Column8" runat="server" DataIndex="UserDeleted" Text="Deleted" Editable="true" Width="50" />
                            
                            <ext:Column ID="Column9" runat="server" DataIndex="UserDomain" Text="Domain" Width="50">
                                <Editor>
                                    <ext:TextField ID="TextField8" runat="server" />
                                </Editor>
                            </ext:Column>
                            <ext:Column ID="Column10" runat="server" DataIndex="UserLastNameGR" Text="Last Name GR">
                                <Editor>
                                    <ext:TextField ID="TextField9" runat="server" />
                                </Editor>
                            </ext:Column>
                            <ext:Column ID="Column11" runat="server" DataIndex="UserFirstNameGR" Text="First Name GR">
                                <Editor>
                                    <ext:TextField ID="TextField10" runat="server" />
                                </Editor>
                            </ext:Column>
    
                            <ext:DateColumn ID="Column12" runat="server" DataIndex="UserDateCreated" Text="Created" Format="dd/MM/yyyy" >
                                <Editor>
                                    <ext:DateField ID="TextField11" runat="server" />
                                </Editor>
                            </ext:DateColumn>
                        </Columns>
                    </ColumnModel>
        
                    <Features>
                      <ext:GridFilters ID="GridFilters1" runat="server">
                          <Filters>
                            <ext:StringFilter DataIndex="UserLoginName" />
                            <ext:StringFilter DataIndex="UserLastName" />
                            <ext:StringFilter DataIndex="UserFirstName" />
                            <ext:StringFilter DataIndex="UserPersonName" />
                            <ext:StringFilter DataIndex="UserEmail" />
                            <ext:BooleanFilter DataIndex="UserActive" />
                            <ext:BooleanFilter DataIndex="UserDeleted" />
                            <ext:StringFilter DataIndex="UserDomain" />
                            <ext:StringFilter DataIndex="UserLastNameGR" />
                            <ext:StringFilter DataIndex="UserFirstNameGR" />
                            <ext:DateFilter DataIndex="UserDateCreated" >
                                  <DatePickerOptions runat="server" TodayText="Now" />
                            </ext:DateFilter>
                          </Filters>
                      </ext:GridFilters>
                    </Features>
    
                    <SelectionModel>
                      <ext:CheckboxSelectionModel  >
                        <Listeners>
                            <Select Handler="#{btnDelete}.enable();" />
                            <Deselect Handler="if (!#{GridPanel1}.selModel.hasSelection()) { #{btnDelete}.disable(); }" />
                        </Listeners>
                      </ext:CheckboxSelectionModel>
                    </SelectionModel>
                    <BottomBar>
                      <ext:PagingToolbar ID="PagingToolbar4" runat="server"                      
                          DisplayInfo="true" DisplayMsg="Προβολή εγγραφών {0} - {1} of {2}" 
                          EmptyMsg="">
                        </ext:PagingToolbar>
                    </BottomBar>
                    <Plugins>
                      <ext:CellEditing ID="CellEditing1" runat="server" ClicksToEdit="1" />
                    </Plugins>
                            
                </ext:GridPanel>
            </Items>        
        </ext:Viewport>
    Last edited by Daniil; Jul 25, 2013 at 2:11 PM. Reason: [CLOSED]
  2. #2
    Hi @mtsig,

    Please set up SubmitEmptyValue.
    <ext:ModelField Name="UserDateCreated" Type="Date" SubmitEmptyValue="Null" />
  3. #3
    Thanks a lot, it works fine.

    Quote Originally Posted by Daniil View Post
    Hi @mtsig,

    Please set up SubmitEmptyValue.
    <ext:ModelField Name="UserDateCreated" Type="Date" SubmitEmptyValue="Null" />

Similar Threads

  1. Replies: 6
    Last Post: Jun 25, 2012, 3:50 PM
  2. Replies: 4
    Last Post: Jun 30, 2011, 3:30 PM
  3. [CLOSED] Hidden Fields, SqlDataSource, ComboBox Update Grid Problem
    By rthiney in forum 1.x Legacy Premium Help
    Replies: 1
    Last Post: May 24, 2010, 4:06 PM
  4. date format for all date fields in grid?
    By marcmvc in forum 1.x Help
    Replies: 0
    Last Post: Dec 01, 2009, 3:41 PM
  5. [CLOSED] Problem when update date field in GridPanel
    By Jurke in forum 1.x Legacy Premium Help
    Replies: 11
    Last Post: Oct 04, 2008, 8:53 AM

Posting Permissions