remove the record from sqldatasource and gridpanel

  1. #1

    remove the record from sqldatasource and gridpanel

    I was trying to remove a record from a gridpanel and sqldatasource deletecommand,however it just remove the record from gridpanel not in the sql database. When I clicked delete button, it deletes the selected record. but when I click refresh button the record gets back. what am I missing with my code. Please help me. Thanks in advance!

    <%@ Page  Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" Debug="true" %>
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    <%@ Import Namespace="System.Xml" %>
    <%@ Import Namespace="System.Data" %>
    <%@ Import Namespace="System.Data.SqlClient" %>
    <%@ Import Namespace="System.Collections.Generic"%>
    
    
    <script runat="server">
      
        
        protected void Page_Load(object sender, EventArgs e)
        {
                ListOfActivityAndClients();
                ListOfSupervisor();
                Time();
                //this.Store1.Reload();
            
        
       }
        private void ListOfActivityAndClients()
        {
            SqlConnection adocn = new SqlConnection();
            adocn.ConnectionString = "server=(local);database=TimeSheet;user id=timesheetLogin; Password=timesheet";
            adocn.Open();
            SqlDataAdapter scom = new SqlDataAdapter("SELECT * FROM Project", adocn);
            DataSet dsClients = new DataSet();
            scom.Fill(dsClients);
    
            cboClients.Items.Clear();
            foreach (DataRow dr in dsClients.Tables[0].Rows)
            {
                cboClients.Items.Add(new Ext.Net.ListItem(dr["szProjectName"].ToString()));
                cboClients1.Items.Add(new Ext.Net.ListItem(dr["szProjectName"].ToString()));
                   
            }
    
            scom = new SqlDataAdapter("SELECT * FROM Module M, Project P WHERE M.nmProjectID  = P.nmProjectID AND szProjectName = 'Master'", adocn);
            DataSet dsActivities = new DataSet();
            scom.Fill(dsActivities);
    
            cboActivity.Items.Clear();
            foreach (DataRow dr in dsActivities.Tables[0].Rows)
            {
                cboActivity.Items.Add(new Ext.Net.ListItem(dr["szModuleName"].ToString()));
                cboActivity1.Items.Add(new Ext.Net.ListItem(dr["szModuleName"].ToString())); 
            }
        }
    
        private void ListOfSupervisor()
        {
            SqlConnection adocn = new SqlConnection();
            adocn.ConnectionString = "server=(local);database=TimeSheet;user id=timesheetLogin; Password=timesheet";
            adocn.Open();
            SqlDataAdapter scom = new SqlDataAdapter("SELECT * FROM UserMaster where nmIsSupervisor='1'", adocn);
            DataSet dsSupervisor= new DataSet();
            scom.Fill(dsSupervisor);
    
            cboSupervisor.Items.Clear();
            foreach (DataRow dr in dsSupervisor.Tables[0].Rows)
            {
                cboSupervisor.Items.Add(new Ext.Net.ListItem(dr["szContactPerson"].ToString()));
            }
        }
    
        private void Time()
        {
            Ext.Net.ListItem[] ItemObject = new Ext.Net.ListItem[1380];
            for (int i = 0; i <= 12; i++)
            {
                for (int j = 0; j < 60; j++)
                {
                    if (i < 12)
                    {
                        ItemObject[j] = new Ext.Net.ListItem() { Text = i.ToString("0") + ":" + j.ToString("00") + " " + "AM", Value = i.ToString("0") + ":" + j.ToString("00") + " " + "AM", };
                        cboTimeIn.Items.Add(ItemObject[j]);
                        cboTimeOut.Items.Add(ItemObject[j]);
                        cboSTimeIn.Items.Add(ItemObject[j]);
                        cboSTimeOut.Items.Add(ItemObject[j]);
                    }
                    else
                    {
                        ItemObject[j] = new Ext.Net.ListItem() { Text = i.ToString("0") + ":" + j.ToString("00") + " " + "PM", Value = i.ToString("0") + ":" + j.ToString("00") + " " + "PM", };
                        cboTimeIn.Items.Add(ItemObject[j]);
                        cboTimeOut.Items.Add(ItemObject[j]);
                        cboSTimeIn.Items.Add(ItemObject[j]);
                        cboSTimeOut.Items.Add(ItemObject[j]);
                    }
                }
            }
            for (int k = 1; k <= 11; k++)
            {
                for (int l = 0; l < 60; l++)
                {
                    ItemObject[l] = new Ext.Net.ListItem() { Text = k.ToString("0") + ":" + l.ToString("00") + " " + "PM", Value = k.ToString("0") + ":" + l.ToString("00") + " " + "PM", };
                    cboTimeIn.Items.Add(ItemObject[l]);
                    cboTimeOut.Items.Add(ItemObject[l]);
                    cboSTimeIn.Items.Add(ItemObject[l]);
                    cboSTimeOut.Items.Add(ItemObject[l]);
                }
            }
        }
        
        private bool cancel;
        private string message;
        private string insertedValue;
    
        protected void Store1_BeforeRecordInserted(object sender, BeforeRecordInsertedEventArgs e)
        {
           
        }
        protected void Store2_BeforeRecordInserted(object sender, BeforeRecordInsertedEventArgs e)
        {
         
        }
        protected void Store1_AfterRecordInserted(object sender, AfterRecordInsertedEventArgs e)
        {
    
            if (!string.IsNullOrEmpty(insertedValue))
            {
                e.Keys.Add("nmTimeSheetDetail", insertedValue);
                insertedValue = "";
            }
        }
        protected void Store2_AfterRecordInserted(object sender, AfterRecordInsertedEventArgs e)
        {
            if (!string.IsNullOrEmpty(insertedValue))
            {
                e.Keys.Add("nmTimeSheetSupervisorDetail", insertedValue);
                insertedValue = "";
            }
        }
    
        protected void Store1_BeforeRecordUpdated(object sender, BeforeRecordUpdatedEventArgs e)
        {
            int test=e.NewValues.Count;
        }
        protected void Store2_BeforeRecordUpdated(object sender, BeforeRecordUpdatedEventArgs e)
        {
            int test1 = e.NewValues.Count;
        }
    
        protected void Store1_SubmitData(object sender, StoreSubmitDataEventArgs e)
        {
            X.Msg.Alert("Submit", e.Parameters["ActionName"]).Show();
        }
        protected void Store2_SubmitData(object sender, StoreSubmitDataEventArgs e)
        {
            X.Msg.Alert("Submit", e.Parameters["ActionName"]).Show();
        }
    
        protected void SqlDataSource1_Inserted(object sender, SqlDataSourceStatusEventArgs e)
        {
    
            insertedValue = e.Command.Parameters["@newId"].Value != null
                                 ? e.Command.Parameters["@newId"].Value.ToString()
                                 : "";
        }
    
        protected void SqlDataSource2_Inserted(object sender, SqlDataSourceStatusEventArgs e)
        {
            insertedValue = e.Command.Parameters["@newId1"].Value != null
                                 ? e.Command.Parameters["@newId1"].Value.ToString()
                                 : "";
        }
    
        protected void SqlDataSource1_Updating(object sender, SqlDataSourceCommandEventArgs e)
        {
            
        }
        protected void SqlDataSource2_Updating(object sender, SqlDataSourceCommandEventArgs e)
        {
    
        }
        protected void SqlDataSource1_Inserting(object sender, SqlDataSourceCommandEventArgs e)
        {
            System.Data.Common.DbCommand Test = e.Command;
        }
      
        protected void SqlDataSource2_Inserting(object sender, SqlDataSourceCommandEventArgs e)
        {
           System.Data.Common.DbCommand Test = e.Command;
        }
        
        protected void Store1_AfterDirectEvent(object sender, AfterDirectEventArgs e)
        {
            if (e.Response.Success)
            {
                // set to .Success to false if we want to return a failure
                e.Response.Success = !cancel;
                e.Response.Message = message;           
            }
        }
        protected void Store2_AfterDirectEvent(object sender, AfterDirectEventArgs e)
        {
            if (e.Response.Success)
            {
                // set to .Success to false if we want to return a failure
                e.Response.Success = !cancel;
                e.Response.Message = message;
            }
        }
        protected void Store1_BeforeDirectEvent(object sender, BeforeDirectEventArgs e)
        {
            string emulError = e.Parameters["EmulateError"];
            
            if (emulError == "1")
            {
                throw new Exception("Emulating error");
            }
        }
        protected void Store2_BeforeDirectEvent(object sender, BeforeDirectEventArgs e)
        {
            string emulError = e.Parameters["EmulateError"];
    
            if (emulError == "1")
            {
                throw new Exception("Emulating error");
            }
        }
        protected void Store1_RefershData(object sender, StoreReadDataEventArgs e)
        {
            this.Store1.DataBind();
        }
    
        protected void Store2_Refresh(object sender, StoreReadDataEventArgs e)
        {
            string id = e.Parameters["snmTimeSheetID"];
            this.SqlDataSource2.FilterParameters["snmTimeSheetID"].DefaultValue = id ?? "-1";
            this.Store2.DataBind();
        }
    
        protected void DisableGrid2Button(object sender, DirectEventArgs e)
        {
            btnSave1.Disabled = true;
            btnDelete1.Disabled = true;
            btnInsert1.Disabled = true;
            btnRefresh1.Disabled = true;
            btnEmulError1.Disabled = true;
            DropDownField1.Disabled = true;
            cboClients1.Disabled = true;
            cboActivity1.Disabled = true;
        }
        protected void EnableGrid2Button(object sender, DirectEventArgs e)
        {
            btnSave1.Disabled = false;
            btnDelete1.Disabled = false;
            btnInsert1.Disabled = false;
            btnRefresh1.Disabled = false;
            btnEmulError1.Disabled = false;
            DropDownField1.Disabled = false;
            cboClients1.Disabled = false;
            cboActivity1.Disabled = false;
        }
    
        protected void DisableGrid1Button(object sender, DirectEventArgs e)
        {
            BtnSave.Disabled = true;
            BtnDelete.Disabled = true;
            BtnInsert.Disabled = true;
            BtnRefresh.Disabled = true;
            btnEmulError.Disabled = true;
            DropDownField1.Disabled = true;
            cboClients1.Disabled = true;
            cboActivity1.Disabled = true;
        }
        protected void EnableGrid1Button(object sender, DirectEventArgs e)
        {
            BtnSave.Disabled = false;
            BtnDelete.Disabled = false;
            BtnInsert.Disabled = false;
            BtnRefresh.Disabled = false;
            btnEmulError.Disabled = false;
            DropDownField1.Disabled = false;
            cboClients1.Disabled = false;
            cboActivity1.Disabled = false;
        }
    </script>
    
    <!DOCTYPE html>
    
    <html>
    <head id="Head1"  runat="server"> <%--id="Head1"--%>
        <title>Intercare Therapy Timesheet</title>
      <ext:XScript ID="XScript1" runat="server">
            <script type="text/javascript">
                             
                var applyFilter = function (field) {                
                    var store = #{GridPanel1}.getStore();
                    store.filterBy(getRecordFilter());                                                
                };
                 
                var clearFilter = function () {
                    #{DateField1}.reset();
                     #{DateField3}.reset();
                    #{cboClients1}.reset();
                    #{cboActivity1}.reset();
                                 
                    #{Store1}.clearFilter();
                }
     
                var filterString = function (value, dataIndex, record) {
                    var val = record.get(dataIndex);
                    
                    if (typeof val != "string") {
                        return value.length == 0;
                    }
                    
                    return val.toLowerCase().indexOf(value.toLowerCase()) > -1;
                };
     
                var filterDate = function (value, value2, dataIndex, record) {
                    var val = Ext.Date.clearTime(record.get(dataIndex), true).getTime();
     
                    if (!Ext.isEmpty(value, false) && val < Ext.Date.clearTime(value, true).getTime()) {
                        return false;
                    }
                    if (!Ext.isEmpty(value2, false) && val > Ext.Date.clearTime(value2, true).getTime()) {
                        return false;
                    }
                    return true;
                };
     
                var filterNumber = function (value, dataIndex, record) {
                    var val = record.get(dataIndex);                
     
                    if (!Ext.isEmpty(value, false) && val != value) {
                        return false;
                    }
                    
                    return true;
                };
     
                var getRecordFilter = function () {
                    var f = [];
     
                    f.push({
                        filter: function (record) {                         
                            return filterDate(#{DateField1}.getValue()||"",#{DateField3}.getValue()||"", "dtDate", record);
                        }
                    });
                     
                    f.push({
                        filter: function (record) {                         
                            return filterNumber(#{cboClients1}.getValue(), "Client", record);
                        }
                    });
                     
                    f.push({
                        filter: function (record) {                         
                            return filterNumber(#{cboActivity1}.getValue(), "Activity", record);
                        }
                    });
                     
                    
                    var len = f.length;
                     
                    return function (record) {
                        for (var i = 0; i < len; i++) {
                            if (!f[i].filter(record)) {
                                return false;
                            }
                        }
                        return true;
                    };
                };
                var onRender = function (field) {
                field.getPicker().el.on(
                    "mousedown", 
                    function (e) { 
                        // generally, just e.stopEvent() should work instead of the all code below. I will investigate.
                        var browserEvent = e.browserEvent;
     
                        if (browserEvent) {                    
                            Ext.EventManager.stopPropagation(browserEvent);
                        }
                        e.preventDefault(); 
                    });
            };
            var deleteRows = function(grid) {
                Ext.Msg.confirm('Delete Rows', 'Are you sure?', function(btn) {
                    if (btn == 'yes') {
                        grid.deleteSelected();
    
    //                    grid.Ext.net.Sync();
    
                    }
     
    
                })
            }
            </script>
        </ext:XScript>
    
    </head>
    <body>
     <%--    --FOR TIMSHEETDETAIL----%>   
        <form id="Form1"  runat="server">  
            <ext:ResourceManager ID="ResourceManager1"  runat="server"  />  
                <asp:SqlDataSource 
                ID="SqlDataSource1" 
                runat="server" 
                connectionString="server=(local);database=TimeSheet;user id=timesheetLogin; Password=timesheet"
                ProviderName="System.Data.SqlClient"
                DeleteCommand="DELETE FROM [Timesheet].[dbo].[TimeSheetDetail1] WHERE (nmTimeSheetDetail = @TimeSheetDetail)"
                InsertCommand="INSERT INTO [TimeSheet].[dbo].[TimeSheet1]
    	                       ([szAdminApproval]
                               ,[dtCreateDate]
                               ,[nmUserID])
                                VALUES
    	                        (
    	                        '1',
    	                        GETDATE(),
    	                        '17'
    	                        );
                               INSERT INTO [Timesheet].[dbo].[TimeSheetDetail1]
                                   (
                                    [szDetail],
                                    [nmHourID], 
                                    [nmTimeSheetID], 
                                    [nmModule], 
                                    [nmProjectID], 
                                    [szTimeIn], 
                                    [szTimeOut], 
                                    [dtDate]) 
                                VALUES 
                                    (        
                                     ' ',
                                    DATEDIFF(MINUTE,@TimeIn, @TimeOut),  
                                    (Select max(nmTimeSheetID) from [TimeSheet].[dbo].[TimeSheet1]),
                                    (Select TDM.nmModule from TimeSheet.dbo.Module TDM inner join TimeSheet.dbo.Project TDP on TDM.nmProjectID=TDP.nmProjectID where TDM.szModuleName like @Activity and TDP.szProjectName like @Client), 
                                    (Select nmProjectID from TimeSheet.dbo.Project where szProjectName like @Client),
                                     @TimeIn,
                                     @TimeOut,
                                     @dtDate);
                                     SELECT @newId = @@Identity;"
                                
                SelectCommand="SELECT 
                               TSD.nmTimeSheetDetail As TimeSheetDetail
                               ,TSD.nmTimeSheetID
                               ,TSD.dtDate AS dtDate
                               ,NMP.szProjectName AS Client
                               ,NMM.szModuleName AS Activity
                               ,TSD.szTimeIn AS TimeIn
                               ,TSD.szTimeOut AS TimeOut
                               ,TSD.nmHourID As nmMinutes
                               FROM Timesheet.dbo.TimeSheetDetail1 TSD
                               inner join Timesheet.dbo.Timesheet1 TS
                               on TSD.nmTimeSheetID = TS.nmTimeSheetID
                               and TS.nmUserID='17'
                               inner join TimeSheet.dbo.Project NMP
                               on NMP.nmProjectID= TSD.nmProjectID
                               inner join TimeSheet.dbo.Module NMM
                               on NMM.nmModule=TSD.nmModule
                               and NMM.nmProjectID=NMP.nmProjectID"
                               
                UpdateCommand="UPDATE [Timesheet].[dbo].[TimeSheetDetail1] SET
                                    [nmTimeSheetID] = @nmTimeSheetID,  
                                    [nmHourID] = @nmMinutes, 
                                    [nmModule] = (Select TDM.nmModule from TimeSheet.dbo.Module TDM inner join TimeSheet.dbo.Project TDP on TDM.nmProjectID=TDP.nmProjectID where TDM.szModuleName like @Activity and TDP.szProjectName like @Client), 
                                    [nmProjectID] = (Select nmProjectID from TimeSheet.dbo.Project where szProjectName like @Client), 
                                    [szTimeIn]  = @TimeIn, 
                                    [szTimeOut] =  @TimeOut, 
                                   [dtDate] = @dtDate
                               WHERE ([nmTimeSheetDetail] = @TimeSheetDetail)"
                               
                OnInserted="SqlDataSource1_Inserted" OnUpdating="SqlDataSource1_Updating" OnInserting="SqlDataSource1_Inserting" >
                
                <DeleteParameters>
                    <asp:Parameter Name="TimeSheetDetail" Type="Int32" />
                </DeleteParameters>
                
                <UpdateParameters>
                    <asp:Parameter Name="TimeSheetDetail" Type="Int32" />
                    <asp:Parameter Name="nmTimeSheetID" Type="Int32" />
                    <asp:Parameter Name="dtDate" Type="String"/>
                    <asp:Parameter Name="Client" Type="String" />
                    <asp:Parameter Name="Activity" Type="String" />
                    <asp:Parameter Name="TimeIn" Type="String" Size="8" />
                    <asp:Parameter Name="TimeOut" Type="String"  Size="8" />
                    <asp:Parameter Name="nmMinutes" Type="String" />
                 </UpdateParameters>
                
                <InsertParameters>
                    <asp:Parameter Name="dtDate" Type="String" />
                    <asp:Parameter Name="Client" Type="String" />
                    <asp:Parameter Name="Activity" Type="String" />
                    <asp:Parameter Name="TimeIn" Type="String" Size="8" />
                    <asp:Parameter Name="TimeOut" Type="String"  Size="8" />
                   <asp:Parameter Direction="Output" Name="newId" Type="Int32" />
                </InsertParameters>
            </asp:SqlDataSource>
    
    <%--    --FOR TIMSHEETDETAILSUPERVISOR----%>
      <asp:SqlDataSource 
                ID="SqlDataSource2" 
                runat="server" 
                connectionString="server=(local);database=TimeSheet;user id=timesheetLogin; Password=timesheet"
                ProviderName="System.Data.SqlClient"
                DeleteCommand="DELETE FROM Timesheet.dbo.TimeSheetSupervisorDetail1 WHERE (nmTimeSheetID = @snmTimeSheetID)"
                InsertCommand="INSERT INTO [Timesheet].[dbo].[TimeSheetSupervisorDetail1]
                                   (
                                    [nmSupervisorID],
                                    [szTimeIn], 
                                    [szTimeOut], 
                                    [nmTimeSheetID]) 
                                VALUES 
                                    ( 
                                    (Select nmUserID from [TimeSheet].[dbo].[UserMaster] where szContactPerson like @Supervisor),       
                                     @sTimeIn,
                                     @sTimeOut,
                                     @snmTimeSheetID
                                     );
                                     UPDATE [TimeSheet].[dbo].[TimeSheetDetail1]
                                    SET [szDetail]=@Detail
                                    WHERE ([nmTimeSheetID] = @snmTimeSheetID);
                                      SELECT @newId1 = @@Identity;"
                                
                SelectCommand="Select TSD.szDetail AS Detail,
    		                    UM.szContactPerson AS Supervisor,
                                TSSD.szTimeIn As sTimeIn,
    		                    TSSD.szTimeOut As sTimeOut,
    		                    TSSD.nmTimeSheetID as snmTimeSheetID
                                from Timesheet.dbo.TimeSheetDetail1 TSD
                                inner join Timesheet.dbo.TimeSheetSupervisorDetail1 TSSD
                                on TSD.nmTimeSheetID=TSSD.nmTimeSheetID
                                inner join Timesheet.dbo.UserMaster UM
                                on TSSD.nmSupervisorID=UM.nmUserID"
                                FilterExpression="snmTimeSheetID='{0}'" 
                                
                               
                UpdateCommand="UPDATE [Timesheet].[dbo].[TimeSheetSupervisorDetail1] SET
                                    [nmSupervisorID] = (Select nmUserID from [TimeSheet].[dbo].[UserMaster] where szContactPerson like @Supervisor), 
                                    [szTimeIn] = @sTimeIn, 
                                    [szTimeOut] = @sTimeOut, 
                                    [nmTimeSheetID] = @snmTimeSheetID
                               WHERE ([nmTimeSheetID] = @snmTimeSheetID);
                              UPDATE [TimeSheet].[dbo].[TimeSheetDetail1]
                              SET [szDetail]=@Detail
                              WHERE ([nmTimeSheetID] = @snmTimeSheetID)"
                               
                OnInserted="SqlDataSource2_Inserted" OnUpdating="SqlDataSource2_Updating" OnInserting="SqlDataSource2_Inserting"  >
                
                <FilterParameters>
                <asp:ControlParameter Name="snmTimeSheetID" ControlId="TimeSheetIDValue" DefaultValue="0" />
                </FilterParameters>
    
                <DeleteParameters>
                    <asp:Parameter Name="snmTimeSheetID" Type="Int32" />
                </DeleteParameters>
                
                <UpdateParameters>
                    <asp:Parameter Name="snmTimeSheetID" Type="Int32" />
                    <asp:Parameter Name="Detail" Type="String"/>
                    <asp:Parameter Name="sTimeIn" Type="String" Size="8" />
                    <asp:Parameter Name="sTimeOut" Type="String"  Size="8" />
                 </UpdateParameters>
                
                <InsertParameters>
                    <asp:Parameter Name="Supervisor" Type="String" />
                    <asp:Parameter Name="sTimeIn" Type="String" Size="8" />
                    <asp:Parameter Name="sTimeOut" Type="String"  Size="8" />
                    <asp:ControlParameter Name="snmTimeSheetID" ControlId="TimeSheetIDValue" />
                    <asp:Parameter Direction="Output" Name="newId1" Type="Int32" />
                </InsertParameters>
    
      </asp:SqlDataSource>
    
    
    
     <ext:Viewport ID="Viewport2" runat="server" Layout="BorderLayout">
        <Items>
            <ext:Panel ID="Panel1" 
             runat="server"
             Region="Center"
             Frame="true" 
             Title="TimeSheet Detail" 
             Icon="Lorry" 
             Layout="Fit" 
             MarginsSummary="0 5 0 5">
                <Items>
                    <ext:GridPanel 
                      ID="GridPanel1" 
                       runat="server"
                       Width="600"
                Height="350">
                       <Store>
                            <ext:Store 
                            ID="Store1" 
                            runat="server" 
                            DataSourceID="SqlDataSource1" 
                            ShowWarningOnFailure="false"
                            OnAfterDirectEvent="Store1_AfterDirectEvent"
                            OnBeforeDirectEvent="Store1_BeforeDirectEvent" 
                            OnBeforeRecordInserted="Store1_BeforeRecordInserted"
                            OnAfterRecordInserted="Store1_AfterRecordInserted"
                            OnBeforeRecordUpdated="Store1_BeforeRecordUpdated"
                            OnReadData="Store1_RefershData"
                            OnSubmitData="Store1_SubmitData">
                                <Model>
                                    <ext:Model ID="Model1" runat="server" IDProperty="nmTimeSheetID" Name="TimeSheetDetails">
                                        <Fields>
                                            <ext:ModelField Name="TimeSheetDetail"/>
                                            <ext:ModelField Name="nmTimeSheetID"/>
                                            <ext:ModelField Name="dtDate" Type="Date" />
                                            <ext:ModelField Name="Client" Type="String" />
                                            <ext:ModelField Name="Activity" />
                                            <ext:ModelField Name="TimeIn" Type="String"  />
                                            <ext:ModelField Name="TimeOut" Type="String" />
                                            <ext:ModelField Name="nmMinutes"  />
                                          
                                       </Fields>
                                    </ext:Model>
                                </Model>
                                <Sorters>
                                    <ext:DataSorter Property="dtDate" Direction="DESC" />
                                </Sorters> 
                                <Listeners>
                                    <Exception Handler="Ext.Msg.alert('Operation failed', operation.getError());" />                
                                    <Write Handler="Ext.Msg.alert('Saving', 'The data successfully saved');" />
                                    <BeforeLoad Handler="if (#{Hidden1}.getValue() >= 0) {#{Hidden1}.setValue(-1); #{Store1}.reload();}" />
                                   
                                </Listeners>
                            </ext:Store>
                            </Store>
                            <ColumnModel ID="ColumnModel1" runat="server">
                                                <Columns>
                                                    <ext:Column ID="ColDate" runat="server"  DataIndex="dtDate" Text="Date"  OverOnly="true" Width="200" >
                                                    <HeaderItems>
                                                            <%--  <ext:DateField ID="DateField1" AltFormats="MM/dd/yyyy"  runat="server" Width="200"  EmptyText="Filter by...">
                                                               <Listeners>
                                                                    <Select Handler="applyFilter(this);" />
                                                                </Listeners>
                                                              </ext:DateField>--%>
    
                                                              <ext:DropDownField ID="DropDownField1" runat="server" Editable="false"  EmptyText="Filter by...">
                                                               <Component>
                                                                 <ext:Panel ID="Panel3"
                                                                            runat="server"
                                                                            Layout="AnchorLayout"
                                                                            DefaultAnchor="100%">
                                                                            <Items>
                                                                                <ext:DateField ID="DateField1"
                                                                                               runat="server"
                                                                                               Editable="false"
                                                                                               LabelWidth="30"
                                                                                               FieldLabel="From">
                                                                                                <Listeners>
                                                                                                    <Render Fn="onRender" />
                                                                                                     <Select Handler="applyFilter(this);" />
                                                                                                </Listeners>
                                                                                </ext:DateField>
                                                                                <ext:DateField ID="DateField3"
                                                                                                runat="server"
                                                                                                Editable="false"
                                                                                                LabelWidth="30"
                                                                                                FieldLabel="To">
                                                                                                <Listeners>
                                                                                                    <Render Fn="onRender" />
                                                                                                     <Select Handler="applyFilter(this);" />
                                                                                                </Listeners>
                                                                                </ext:DateField>
                                                                            </Items>
                                                                </ext:Panel>
                                                            </Component>
                                                            </ext:DropDownField>
                                                      </HeaderItems>
                                                        <Editor>
                                                        <ext:DateField ID="DateField2" AltFormats="MM/dd/yyyy"  runat="server" Width="200"  />
                                                        </Editor>
                                                          <Renderer Format="Date" FormatArgs="'m/d/Y'" />
                                                    </ext:Column>
                                                    <ext:Column ID="ColClient" runat="server" DataIndex="Client" Text="Client" Width="200" OverOnly="true">
                                                        <HeaderItems>
                                                              <ext:ComboBox ID="cboClients1" runat="server" EmptyText="Filter by..." >
                                                               <Listeners>
                                                                    <Select Handler="applyFilter(this);" />
                                                                </Listeners>
                                                              </ext:ComboBox>
                                                      </HeaderItems>
                                                        <Editor>
                                                              <ext:ComboBox ID="cboClients" runat="server" EmptyText="Select a Client..." />
                                                        </Editor>
                                                    </ext:Column>
                                                    <ext:Column ID="ColActivity" runat="server" DataIndex="Activity" Text="Activity" Width="200" OverOnly="true">
                                                         <HeaderItems>
                                                                <ext:ComboBox ID="cboActivity1"  runat="server" EmptyText="Filter by...">
                                                               <Listeners>
                                                                    <Select Handler="applyFilter(this);" />
                                                                </Listeners>
                                                              </ext:ComboBox>
                                                        </HeaderItems>
                                                         <Editor>
                                                             <ext:ComboBox ID="cboActivity"  runat="server" EmptyText="Select an Activity..."/>
                                                        </Editor>
                                                    </ext:Column>
                                                    <ext:Column ID="ColTimeIn"  runat="server"  DataIndex="TimeIn" Text="Time-In" Width="200" OverOnly="true" >
                                                        <Editor>
                                                              <ext:ComboBox ID="cboTimeIn"  runat="server" EmptyText="0:00 AM" />
                                                        </Editor>
                                                  
                                                    </ext:Column>
                                                    <ext:Column ID="ColTimeOut"  runat="server" DataIndex="TimeOut" Text="Time-Out" Width="200" OverOnly="true">
                                                        <Editor>
                                                             <ext:ComboBox ID="cboTimeOut"  runat="server" EmptyText="0:00 AM" />
                                                        </Editor>
                                                
                                                    </ext:Column>
                                                    <ext:Column ID="ColMinutes"  runat="server" DataIndex="nmMinutes" Text="Minutes" Width="200" OverOnly="true" >
                                                        <Editor>
                                                            <ext:TextField ID="txtMin" runat="server"  Disabled="true"/>
                                                        </Editor>
                                                    </ext:Column>
                                                    <ext:Column ID="Column5"  runat="server" Flex="1" DataIndex="TimeSheetDetail" >
                                                     <HeaderItems>
                                                         <ext:Container ID="Container1" runat="server">
                                                            <Items>
                                                             <ext:Button ID="ClearFilterButton" runat="server" Icon="Cancel">
                                                                 <ToolTips>
                                                                       <ext:ToolTip ID="ToolTip1" runat="server" Html="Clear filter" />
                                                                 </ToolTips>
                                                 
                                                                 <Listeners>
                                                                       <Click Handler="clearFilter(null);" />
                                                                 </Listeners>                                            
                                                            </ext:Button>
                                                           </Items>
                                                        </ext:Container>                            
                                                    </HeaderItems>
                                            </ext:Column>
                                           </Columns>
                               </ColumnModel>
                               <SelectionModel>
                                    <ext:RowSelectionModel ID="RowSelectionModel2" runat="server"  Mode="Single">
                                         <Listeners>
                                         
                                            <Select Handler="#{TimeSheetIDValue}.setValue(#{GridPanel1}.getSelectionModel().hasSelection() ? #{GridPanel1}.getSelectionModel().getSelection()[0].data.nmTimeSheetID : -1);#{Store2}.reload();"  Buffer="250" />
                                         
                                         </Listeners>     
                                    </ext:RowSelectionModel>
                                </SelectionModel>
                                   <BottomBar>
                                    <ext:PagingToolbar ID="PagingToolbar2" 
                                        runat="server"                                              
                                        StoreID="Store1" 
                                        DisplayInfo="false" 
                                        />
                                    </BottomBar>
                             
                                <Plugins>
                                    <ext:CellEditing ID="CellEditing2" runat="server" />
                                </Plugins>
                      </ext:GridPanel>
                      <ext:Hidden ID="TimeSheetIDValue" runat="server" Text="0" />
                      <ext:Hidden ID="Hidden1" runat="server" Text="0" />
                   </Items>
                    <%--<Listeners>
                            <Expand Handler="#{Store1}.reload();" />
                      </Listeners> --%>
                   <Buttons>
                         <ext:Button ID="BtnSave" runat="server"  Text="Save" Icon="Disk">
                                <Listeners>
                                    <Click Handler="#{Store1}.sync();" />
                         
                                </Listeners>
                                 
                            </ext:Button>
                            <ext:Button ID="BtnDelete" runat="server"  Text="Delete selected records" Icon="Delete">
                                <Listeners>
                                  <Click Handler="deleteRows(#{GridPanel1});" />
                                <%--    <Click Handler="#{GridPanel1}.deleteSelected();" />--%>
                            <%--        <Click Handler="if (command == 'Delete') { this.deleteRecord(record);}" />--%>
                                </Listeners>
                            </ext:Button>
                            <ext:Button ID="BtnInsert" runat="server"  Text="Insert" Icon="Add">
                                <Listeners>
                                    <Click Handler="#{Store1}.insert(0, new TimeSheetDetails());#{GridPanel1}.editingPlugin.startEditByPosition({row:0, column:0});" />
                                </Listeners>
                              <DirectEvents>
                                     <Click OnEvent="DisableGrid2Button"></Click>
                              </DirectEvents>  
                            </ext:Button>
                            <ext:Button ID="BtnRefresh" runat="server"  Text="Refresh" Icon="ArrowRefresh">
                                <Listeners>
                                    <Click Handler="#{Store1}.reload({params:{EmulateError: 0}});" />
                                </Listeners>
                                <DirectEvents>
                                     <Click OnEvent="EnableGrid2Button"></Click>
                              </DirectEvents>
                            </ext:Button>
                            <ext:Button ID="btnEmulError" runat="server"  Text="Refresh with Emulated error" Icon="Exclamation">
                                <Listeners>
                                    <Click Handler="#{Store1}.reload({params:{EmulateError: 1}});" />
                                </Listeners>
                            </ext:Button>                           
                        </Buttons>
                 </ext:Panel>
                  <ext:Panel 
                        ID="Panel2" 
                        runat="server"
                        Region="South"
                        Frame="true" 
                        Title="Supervisor Detail" 
                        Height="200" 
                        Icon="User" 
                        Layout="Fit" 
                        MarginsSummary="0 5 5 5">         
                        <Items>
                            <ext:GridPanel 
                                ID="GridPanel2" 
                                runat="server">      
                                    <Store>
                                    <ext:Store 
                                        ID="Store2" 
                                        runat="server" 
                                        DataSourceID="SqlDataSource2" 
                                        ShowWarningOnFailure="false"
                                        OnAfterDirectEvent="Store2_AfterDirectEvent"
                                        OnBeforeDirectEvent="Store2_BeforeDirectEvent" 
                                        OnBeforeRecordInserted="Store2_BeforeRecordInserted"
                                        OnAfterRecordInserted="Store2_AfterRecordInserted"
                                        OnBeforeRecordUpdated="Store2_BeforeRecordUpdated"
                                        OnReadData="Store2_Refresh"
                                        OnSubmitData="Store2_SubmitData"
                                        AutoLoad="false">
                                        <Model>
                                            <ext:Model ID="Model2" runat="server" IDProperty="nmTimeSheetSupervisorDetail" Name="SupervisorDetails">
                                                <Fields>
                                                    <ext:ModelField Name="nmTimeSheetSupervisorDetail" />
                                                    <ext:ModelField Name="Detail" Type="String" />
                                                    <ext:ModelField Name="Supervisor" Type="String"/>
                                                    <ext:ModelField Name="sTimeIn" Type="String"/>
                                                    <ext:ModelField Name="sTimeOut" Type="String" />
                                                    <ext:ModelField Name="snmTimeSheetID" />     
                                                                                  
                                                </Fields>
                                            </ext:Model>
                                        </Model>
                                        <Listeners>                                                                          
                                            <Exception Handler="Ext.Msg.alert('Supervisor - Load failed', operation.getError());" />
                                            <Write Handler="Ext.Msg.alert('Write', 'The data successfully saved');" />
                                        </Listeners>
                                    </ext:Store>
                                 </Store>
                                <ColumnModel ID="ColumnModel2" runat="server">
                                    <Columns>
                                        <ext:Column ID="Column1" runat="server" DataIndex="Detail" Text="Detail" Flex="1" >
                                                <Editor>
                                                     <ext:TextField ID="TextField1" runat="server"  />
                                                </Editor>
                                        </ext:Column>
                                        <ext:Column ID="Column2" runat="server" DataIndex="Supervisor" Text="Supervisor"  Width="200"  >
                                                 <Editor>
                                                      <ext:ComboBox ID="cboSupervisor"  runat="server" EmptyText="Select a Supervisor..." />
                                                  </Editor>
                                        </ext:Column>
                                        <ext:Column ID="Column3" runat="server" DataIndex="sTimeIn" Text="Time-In"  Width="150" >
                                                 <Editor>
                                                       <ext:ComboBox ID="cboSTimeIn"  runat="server" EmptyText="0:00 AM" />
                                                 </Editor>
                                        </ext:Column>
                                        <ext:Column ID="Column4" runat="server" DataIndex="sTimeOut" Text="Time-Out"  Width="150" >
                                                  <Editor>
                                                             <ext:ComboBox ID="cboSTimeOut"  runat="server" EmptyText="0:00 AM" />
                                                   </Editor>
                                         </ext:Column>
                                          
                                    </Columns>
                                </ColumnModel>
                                <BottomBar>
                                    <ext:PagingToolbar ID="PagingToolbar1" 
                                        runat="server"                                              
                                        StoreID="Store2" 
                                        DisplayInfo="false" 
                                        />
                                </BottomBar>
                                <SelectionModel>
                                    <ext:RowSelectionModel ID="RowSelectionModel1" runat="server" Mode="Multi" />
                                </SelectionModel>  
                                <Plugins>
                                    <ext:CellEditing ID="CellEditing1" runat="server" />
                                </Plugins>
                            </ext:GridPanel>
                        </Items>
                       <%-- <Listeners>
                            <Expand Handler="#{Store2}.reload();" />
                        </Listeners> 
                        --%>
                        <Buttons>
                         <ext:Button ID="btnSave1" runat="server"  Text="Save" Icon="Disk">
                                <Listeners>
                                    <Click Handler="#{Store2}.sync();" />
                      
                                </Listeners>
                                <DirectEvents>
                                     <Click OnEvent="EnableGrid1Button"></Click>
                              </DirectEvents> 
                            </ext:Button>
                            <ext:Button ID="btnDelete1" runat="server"  Text="Delete selected records" Icon="Delete">
                                <Listeners>
                                      <Click Handler="deleteRows(#{GridPanel2});" />
                                 
                                </Listeners>
                            </ext:Button>
                            <ext:Button ID="btnInsert1" runat="server"  Text="Insert" Icon="Add">
                                <Listeners>
                                    <Click Handler="#{Store2}.insert(0, new SupervisorDetails());#{GridPanel2}.editingPlugin.startEditByPosition({row:0, column:0});" />
                                 </Listeners>
                                 <DirectEvents>
                                     <Click OnEvent="DisableGrid1Button"></Click>
                              </DirectEvents>  
                            </ext:Button>
                            <ext:Button ID="btnRefresh1" runat="server"  Text="Refresh" Icon="ArrowRefresh">
                                <Listeners>
                                    <Click Handler="#{Store2}.reload({params:{EmulateError: 0}});" />
                                </Listeners>
                                <DirectEvents>
                                     <Click OnEvent="EnableGrid1Button"></Click>
                              </DirectEvents> 
                            </ext:Button>
                            <ext:Button ID="btnEmulError1" runat="server"  Text="Refresh with Emulated error" Icon="Exclamation">
                                <Listeners>
                                    <Click Handler="#{Store2}.reload({params:{EmulateError: 1}});" />
                                </Listeners>
                            </ext:Button>                           
                        </Buttons>
                    </ext:Panel>
                </Items>
            </ext:Viewport>
    
        </form>
    </body>
    </html>
  2. #2
    Hello!

    Please, try to provide simplified samples of your code and without security credentials. Also, you have SqlDataSources in your code so you have problem with both or only with one?

    http://forums.ext.net/showthread.php?3440
    http://forums.ext.net/showthread.php?10205

    I was trying to remove a record from a gridpanel and sqldatasource deletecommand,however it just remove the record from gridpanel not in the sql database. When I clicked delete button, it deletes the selected record. but when I click refresh button the record gets back. what am I missing with my code. Please help me. Thanks in advance!
    Try to debug you SQL Code and figure out where is the problem, maybe you send wrong ID or wrong command. Also, look to the SQL Log and Windows Log if there some errors.
  3. #3
    I was able to resolved it by using the right name for IDProperty. Thanks!

Similar Threads

  1. Replies: 4
    Last Post: Sep 28, 2016, 10:35 AM
  2. Remove Grid Record on Cancel
    By megha in forum 1.x Help
    Replies: 6
    Last Post: Jul 31, 2012, 12:24 PM
  3. how to delete or remove record?
    By richard in forum 2.x Help
    Replies: 0
    Last Post: Jun 08, 2012, 9:12 AM
  4. Delete or remove record from gridpanel
    By lapix in forum 1.x Help
    Replies: 3
    Last Post: Feb 25, 2012, 5:56 PM
  5. Replies: 4
    Last Post: Oct 07, 2011, 10:49 AM

Posting Permissions