Jul 17, 2009, 3:44 PM
Problem with Delete Command and Grid Panel
Hello,
I'm having a problem with the delete command, I click dthe Delete button and everything looks fine, but then I click the save button and the record that I previously deleted appears again. It never gets deleted from the database.
The insert and update commands are working fine.
Here is my code
<ext:Store ID="Store2" runat="server" DataSourceID="SqlDataPersona1"
OnBeforeRecordInserted="Store2_BeforeRecordInserted"
OnBeforeRecordUpdated="Store2_BeforeRecordUpdated"
>
<Reader>
<ext:JsonReader>
<Fields>
<ext:RecordField Name="CodPersona" Type="Int" />
<ext:RecordField Name="Nombres" Type="String" />
<ext:RecordField Name="Apellidos" Type="String" />
<ext:RecordField Name="Edad" Type="String" />
<ext:RecordField Name="Telefono" Type="String" />
<ext:RecordField Name="Nacionalidad" Type="String" />
</Fields>
</ext:JsonReader>
</Reader>
<Listeners>
<LoadException Handler="Ext.Msg.alert('Suppliers - Load failed', e.message || e )" />
<CommitFailed Handler="Ext.Msg.alert('Suppliers - Commit failed', 'Reason: ' + msg)" />
<SaveException Handler="Ext.Msg.alert('Suppliers - Save failed', e.message || e)" />
<CommitDone Handler="Ext.Msg.alert('Suppliers - Commit', 'The data successfully saved');" />
</Listeners>
</ext:Store>
<ext:Window ID="Window1" runat="server" Collapsible="true" Icon="Application"
Title="Reporte Coolite" Width="635px" Height="400px" Centeronload="False"
PageX="20px" PageY="375px" style="margin-top: 0">
<Body>
<ext:GridPanel
ID="GridPanel1"
runat="server"
Title="Customers"
Height="300"
StoreID="Store2">
<ColumnModel ID="ColumnModel1" runat="server">
<Columns>
<ext:Column ColumnID="CodPersona" Header="CodPersona" DataIndex="CodPersona">
<Editor>
<ext:TextField ID="TextField1" runat="server" />
</Editor>
</ext:Column>
<ext:Column Header="Nombres" DataIndex="Nombres">
<Editor>
<ext:TextField ID="TextField2" runat="server" />
</Editor>
</ext:Column>
<ext:Column Header="Apellidos" DataIndex="Apellidos">
<Editor>
<ext:TextField ID="TextField3" runat="server" />
</Editor>
</ext:Column>
<ext:Column Header="Edad" DataIndex="Edad">
<Editor>
<ext:TextField ID="TextField4" runat="server" />
</Editor>
</ext:Column>
<ext:Column Header="Telefono" DataIndex="Telefono">
<Editor>
<ext:TextField ID="TextField5" runat="server" />
</Editor>
</ext:Column>
<ext:Column Header="Nacionalidad" DataIndex="Nacionalidad">
<Editor>
<ext:ComboBox ID="cbPaises" runat="server" DisplayField="Nombre" ValueField="Nombre" StoreID="Store1"/>
</Editor>
</ext:Column>
</Columns>
</ColumnModel>
<SelectionModel>
<ext:RowSelectionModel ID="RowSelectionModel1" runat="server" />
</SelectionModel>
<BottomBar>
<ext:PagingToolBar
ID="PagingToolBar1"
runat="server"
PageSize="10"
StoreID="Store2"
DisplayInfo="false"
/>
</BottomBar>
<LoadMask ShowMask="true" />
<SaveMask ShowMask="true" />
</ext:GridPanel>
<Buttons>
<ext:Button ID="btnSave" runat="server" Text="Save" Icon="Disk">
<Listeners>
<Click Handler="#{GridPanel1}.save();" />
</Listeners>
</ext:Button>
<ext:Button ID="btnDelete" runat="server" Text="Delete selected records" Icon="Delete">
<Listeners>
<Click Handler="#{GridPanel1}.deleteSelected();" />
</Listeners>
</ext:Button>
<ext:Button ID="btnInsert" runat="server" Text="Insert" Icon="Add">
<Listeners>
<Click Handler="#{GridPanel1}.insertRecord(0, {});#{GridPanel1}.getView().focusRow(0);#{GridPanel1}.startEditing(0, 0);" />
</Listeners>
</ext:Button>
<ext:Button ID="btnRefresh" runat="server" Text="Refresh" Icon="ArrowRefresh">
<Listeners>
<Click Handler="#{GridPanel1}.reload();" />
</Listeners>
</ext:Button>
</Buttons>
</Body>
</ext:Window>
<asp:SqlDataSource ID="SqlDataPersona1" runat="server"
ConnectionString="<%$ ConnectionStrings:BasePruebasConnectionString %>"
SelectCommand="SELECT Per.CodPersona, Per.Nombres, Per.Apellidos, Per.Edad, Per.Telefono, Ps.Nombre Nacionalidad FROM Persona Per, Pais Ps WHERE Per.Nacionalidad = Ps.CodPais ORDER BY Apellidos"
UpdateCommand="UPDATE Persona SET Nombres = @Nombres, Apellidos = @Apellidos, Edad = @Edad, Telefono = @Telefono, Nacionalidad = @Nacionalidad WHERE CodPersona = @CodPersona"
DeleteCommand="DELETE FROM Persona WHERE CodPersona = @CodPersona"
InsertCommand="INSERT INTO Persona (Nombres, Apellidos, Edad, Telefono, Nacionalidad) VALUES (@Nombres, @Apellidos, @Edad, @Telefono, @Nacionalidad)"
ProviderName="<%$ ConnectionStrings:BasePruebasConnectionString.ProviderName %>">
<UpdateParameters>
<asp:Parameter Name="Nombres" />
<asp:Parameter Name="Apellidos" />
<asp:Parameter Name="Edad" />
<asp:Parameter Name="Telefono" />
<asp:Parameter Name="CodPersona" />
<asp:Parameter Name="Nacionalidad" />
</UpdateParameters>
<DeleteParameters>
<asp:Parameter Name="CodPersona" Type="Int32"/>
</DeleteParameters>
<InsertParameters>
<asp:Parameter Name="Nombres" />
<asp:Parameter Name="Apellidos" />
<asp:Parameter Name="Edad" />
<asp:Parameter Name="Telefono" />
<asp:Parameter Name="Nacionalidad" />
</InsertParameters>
</asp:SqlDataSource>
Regards,J. Pablo Ovalle