[CLOSED] LINQ + HttpHandler + GridPanel

  1. #1

    [CLOSED] LINQ + HttpHandler + GridPanel

    I'm having problem with my
    project using LINQ with Gridapanel for some reason I'm getting Row not found or
    changed.


    When I delete and try to save I'm getting
    this error.

    If you can please help me out thank you in
    advance

    default.aspx
    
                <Coolite:Store ID="stoNominees" runat="server" AutoLoad="true" OnRefreshData="OnRefreshData_stoNominees">
                    <UpdateProxy>
                        <Coolite:HttpWriteProxy Method="POST" Url="../HttpHandlers/WebManagement/wmNominees_tbl.ashx" />
                    </UpdateProxy> 
                    <Reader>
                        <Coolite:JsonReader ReaderID="ID">
                            <Fields>
                                <Coolite:RecordField Name="AMAWinner" Type="Boolean"></Coolite:RecordField>
                                <Coolite:RecordField Name="AMAYear" Type="Int"></Coolite:RecordField>
                                <Coolite:RecordField Name="Category" Type="String"></Coolite:RecordField>
                                <Coolite:RecordField Name="Artist" Type="String"></Coolite:RecordField>
                                <Coolite:RecordField Name="Album" Type="String"></Coolite:RecordField>
                                <Coolite:RecordField Name="AlbumYear" Type="Int"></Coolite:RecordField>
                                <Coolite:RecordField Name="Title" Type="String"></Coolite:RecordField>
                                <Coolite:RecordField Name="Label" Type="String"></Coolite:RecordField>
                                <Coolite:RecordField Name="Comment" Type="String"></Coolite:RecordField>
                            </Fields>
                        </Coolite:JsonReader>
                    </Reader>
                    <Listeners>
                        <LoadException Handler="Ext.Msg.alert('Nominees', e.message || response.statusText);" />
                        <CommitFailed Handler="Ext.Msg.alert('Error', msg);" />
                    </Listeners>
                </Coolite:Store>
    
                <Coolite:ViewPort ID="WebManagementViewPort" runat="server">
                    <Body>
                        <Coolite:FitLayout runat="server">
                            <Coolite:GridPanel ID="grdNominees" runat="server" StoreID="stoNominees" StripeRows="true" TrackMouseOver="true" AutoExpandColumn="Comment">
                                <ColumnModel ID="grdNominees_ColumnModel" runat="server">
                                    <Columns>
                                        <Coolite:Column ColumnID="Category" Header="Category" DataIndex="Category" Sortable="true"></Coolite:Column>
                                        <Coolite:Column ColumnID="Artist" Header="Artist" DataIndex="Artist" Sortable="true"></Coolite:Column>
                                        <Coolite:Column ColumnID="Album" Header="Album" DataIndex="Album" Sortable="true"></Coolite:Column>
                                        <Coolite:Column ColumnID="AlbumYear" Header="Album Year" DataIndex="AlbumYear" Sortable="true"></Coolite:Column>
                                        <Coolite:Column ColumnID="Title" Header="Song" DataIndex="Title" Sortable="true"></Coolite:Column>
                                        <Coolite:Column ColumnID="Label" Header="Label" DataIndex="Label" Sortable="true"></Coolite:Column>
                                        <Coolite:Column ColumnID="AMAYear" Header="AMA Year" DataIndex="AMAYear" Sortable="true"></Coolite:Column>
                                        <Coolite:Column ColumnID="AMAWinner" Header="AMA Winner" DataIndex="AMAWinner" Sortable="true"></Coolite:Column>
                                        <Coolite:Column ColumnID="Comment" Header="Comment" DataIndex="Comment" Sortable="true"></Coolite:Column>
                                    </Columns>
                                </ColumnModel>
                                <SelectionModel>
                                    <Coolite:RowSelectionModel ID="grdNominees_RowSelectionModel" runat="server">
                                        <Listeners>
                                            <RowSelect Handler="#{btnDelete}.enable();" />
                                            <RowDeselect Handler="if(!#{grdNominees}.hasSelection()) 
                                                                  {
                                                                      #{btnDelete}.disable();
                                                                  }
                                                         " />
                                        </Listeners>
                                    </Coolite:RowSelectionModel>
                                </SelectionModel>
                                <View>
                                    <Coolite:GridView ForceFit="true"></Coolite:GridView>
                                </View>
                                <TopBar>
                                    <Coolite:Toolbar ID="grdNominees_Toolbar" runat="server">
                                        <Items>
                                            <Coolite:ToolbarButton ID="tbtnAdd" runat="server" Icon="Add" StandOut="true">
                                                <Listeners>
                                                    <Click Handler="#{wndNewNominee}.show();" />
                                                </Listeners>
                                                <ToolTips>
                                                    <Coolite:ToolTip ID="btnAdd_ToolTip" runat="server" Html="Add User"></Coolite:ToolTip>
                                                </ToolTips>
                                            </Coolite:ToolbarButton>
                                        </Items>
                                    </Coolite:Toolbar>
                                </TopBar>                                         
                                <BottomBar>
                                    <Coolite:PagingToolbar ID="grdNominees_PagingToolbar" runat="server" PageSize="20" StoreID="stoNominees" />
                                </BottomBar>
                                <Buttons>
                                    <Coolite:Button ID="btnDelete" runat="server" Text="Delete" Icon="Delete" Enabled="false">
                                        <Listeners>
                                            <Click Handler="Ext.Msg.confirm('Delete', 'Are you sure you want to delete selected rows?', 
                                                                function(btnDeleteConfirm)
                                                                {
                                                                    if(btnDeleteConfirm=='yes')
                                                                    {
                                                                        #{grdNominees}.deleteSelected();
                                                                    }  
                                                                      
                                                                    if(!#{grdNominees}.hasSelection())
                                                                    {
                                                                        #{btnDelete}.disable();
                                                                    }
                                                                }
                                                            ) 
                                                   "/>
                                        </Listeners>
                                        <ToolTips>
                                            <Coolite:ToolTip ID="btnDelete_ToolTip" runat="server" Html="Delete User"></Coolite:ToolTip>
                                        </ToolTips>
                                    </Coolite:Button>
                                    <Coolite:Button ID="btnSave" runat="server" Text="Save" Icon="Disk">
                                        <Listeners>
                                            <Click Handler="#{grdNominees}.save();" />
                                        </Listeners>
                                    </Coolite:Button>
                                </Buttons>
                                <LoadMask ShowMask="true" />
                                <SaveMask ShowMask="true" />                            
                            </Coolite:GridPanel>                                    
                        </Coolite:FitLayout>
                    </Body>
                </Coolite:ViewPort>
    default.aspx.cs

    
            protected void OnRefreshData_stoNominees(object sender, StoreRefreshDataEventArgs e)
            {
                stoNominees.DataSource = SPs.ProcSelectTblNominees(0).GetDataSet();
                stoNominees.DataBind();
            }
    
    
            protected void Page_Load(object sender, EventArgs e)
            {
                stoNominees.DataSource = SPs.ProcSelectTblNominees(0).GetDataSet();
                stoNominees.DataBind();
            }
    wmNominees_tbl.ashx

    
    namespace HttpHandlers.WebManagement
    {
        /// <summary>
        /// Summary description for $codebehindclassname$
        /// </summary>
        [WebService(Namespace = "http://tempuri.org/")]
        [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
        public class wmNominees_tbl : IHttpHandler
        {
            public void ProcessRequest(HttpContext context)
            {
                var stoHandler = new StoreDataHandler(context);
                var ajxResponse = new Response(true);
    
                ConfirmationList confirmationList = stoHandler.BuildConfirmationList("ID");
    
                try
                {
                    var dbContext = new WMDataContext();
    
                    ChangeRecords<tblNominee> objData = stoHandler.ObjectData<tblNominee>();
    
    
                    foreach (tblNominee value in objData.Deleted)
                    {
                        dbContext.tblNominees.Attach(value);
                        dbContext.tblNominees.DeleteOnSubmit(value);
    
                        confirmationList[value.ID.ToString()].ConfirmRecord();
                    }
    
                    foreach (tblNominee value in objData.Updated)
                    {
                        dbContext.tblNominees.Attach(value);
                        dbContext.Refresh(RefreshMode.KeepCurrentValues, value);
    
                        confirmationList[value.ID.ToString()].ConfirmRecord();
                    }
    
                    foreach (tblNominee value in objData.Created)
                    {
                        dbContext.tblNominees.InsertOnSubmit(value);
    
                        confirmationList[value.ID.ToString()].ConfirmRecord();
                    }
    
                    dbContext.SubmitChanges();
                }
    
                catch (Exception e)
                {
                    ajxResponse.Success = false;
                    ajxResponse.Msg = e.Message;
                }
    
                ajxResponse.Write();
            }
    
            public bool IsReusable
            {
                get
                {
                    return false;
                }
            }
    
        }
    }
  2. #2

    RE: [CLOSED] LINQ + HttpHandler + GridPanel

    Hi,

    I am sure that some conflit in Db occurs (may be you can't remove record due reference constrain). Try to set breakpoint inside catch block in you handler and see what exception and what inner exception

    catch (Exception e)
    {
        ajxResponse.Success = false;
        ajxResponse.Msg = e.Message;
    
    }
  3. #3

    RE: [CLOSED] LINQ + HttpHandler + GridPanel

    Thank you Vlad, It was a LINQ data issue it is fixed thank you.

Similar Threads

  1. Replies: 1
    Last Post: May 24, 2012, 7:40 PM
  2. [CLOSED] How to bind linq to sql result to data gridpanel
    By Daly_AF in forum 1.x Legacy Premium Help
    Replies: 1
    Last Post: May 10, 2012, 11:22 AM
  3. GridPanel With Linq from codebehind
    By Ismet in forum 1.x Help
    Replies: 0
    Last Post: Dec 16, 2010, 1:53 AM
  4. [CLOSED] binding linq query to gridpanel
    By ilanga in forum 1.x Legacy Premium Help
    Replies: 6
    Last Post: Oct 05, 2010, 10:34 AM
  5. LINQ GridPanel Issue
    By xerobiker in forum 1.x Help
    Replies: 8
    Last Post: Aug 25, 2009, 10:23 PM

Posting Permissions