This is a migrated thread and some comments may be shown as answers.

[Solved] CRUD on lookup tables or Included Entities

1 Answer 165 Views
GridView
This is a migrated thread and some comments may be shown as answers.
This question is locked. New answers and comments are not allowed.
eraashishgupta
Top achievements
Rank 1
eraashishgupta asked on 27 Oct 2010, 03:42 AM

Hi all,

Let me explain my situation i have a table A which is a foreign key to Table B and table B also has a foreign key to Table C

Now i am doing in my domain service is in the get method for table A is

return ObjectContext.TableA.Include("TableB.TableC");

Everything is working fine and returning the correct thing now i am binding TableA with my DataForm and like master detail TableB with my datagrid

Now my problem is how to perform Insert and Update in tableB remember its a master detail scenario

Now let me share the code of what i have been doing

 
public IQueryable<Batch> GetBatches()
        {
            var query  = this.ObjectContext.Batches.Include("GlTrans.Account");
            return query;
        }

This is my domain service

Now lets move to Silverlgiht Client

 
private void LoadUserDataFromDataSource()
       {
           var loadOperation = _bgpContext.Load(_bgpContext.GetBatchesQuery());
           loadOperation.Completed += loadOperation_Completed;
       }
 
       void loadOperation_Completed(object sender, EventArgs e)
       {
           var results = sender as LoadOperation<Batch>;
           if(results!= null)
           {
               dfUser.ItemsSource = new ObservableCollection<Batch>(results.Entities);
           }
       }

Now in the xaml part

 
<toolkit:DataForm x:Name="dfUser" Margin="0" AutoGenerateFields="False" BorderBrush="{x:Null}" ContentLoaded="dfUser_ContentLoaded"
                         Background="White" CommandButtonsVisibility="Commit,Cancel,Edit,Add,Navigation" >
           <toolkit:DataForm.EditTemplate>
 
               <DataTemplate>
                   <Grid  >
                       <Grid.RowDefinitions>
                           <RowDefinition Height="0.05*"/>
                           <RowDefinition Height="0.3*"/>
                           <RowDefinition Height="0.3*"/>
                           <RowDefinition Height="0.3*"/>
                           <RowDefinition Height="0.5*"/>
                       </Grid.RowDefinitions>
                       <Grid.ColumnDefinitions>
                           <ColumnDefinition Width="84"/>
                           <ColumnDefinition Width="0.5*"/>
                           <ColumnDefinition Width="57"/>
                           <ColumnDefinition Width="0.5*"/>
                       </Grid.ColumnDefinitions>
                       <TextBlock Margin="0" Grid.Row="1" TextWrapping="Wrap" Text="Bat Descr:" HorizontalAlignment="Left" VerticalAlignment="Center"/>
                       <TextBlock HorizontalAlignment="Left" Margin="0" Grid.Row="2" TextWrapping="Wrap" Text="Batnbr:" VerticalAlignment="Center"/>
                       <TextBlock HorizontalAlignment="Left" Margin="5,0,0,0" Grid.Row="3" TextWrapping="Wrap" Text="Period:" VerticalAlignment="Center"/>
                       <TextBox x:Name="txtFirstName" Text="{Binding BatDescr, Mode=TwoWay}" Grid.Column="1" Margin="5" Grid.Row="1" TextWrapping="Wrap" Height="24"/>
                       <TextBox x:Name="txtLastName" Text="{Binding Batnbr, Mode=TwoWay}" Grid.Column="1" Margin="5" Grid.Row="2" TextWrapping="Wrap" Height="24"/>
                                              <telerik:RadButton Content="Save" x:Name="Save" Grid.Row="4" Grid.Column="0"  Click="Save_Click"/>
                       <telerik:RadButton Content="Cancel" Click="Cancel_Click" Grid.Row="4" Grid.Column="1"  x:Name="Cancel"/>
 
                   </Grid>
               </DataTemplate>
           </toolkit:DataForm.EditTemplate>
       </toolkit:DataForm>

Now the grid view

 
<riaControls:DomainDataSource AutoLoad="True" Name="ddsAccounts" QueryName="GetAccountsQuery" LoadedData="ddsAccounts_LoadedData">
            <riaControls:DomainDataSource.DomainContext>
                <my1:BGPContext/>
            </riaControls:DomainDataSource.DomainContext>
        </riaControls:DomainDataSource>
        <telerik:RadGridView Name="gLTransRadGridView" Grid.Row="1" AutoGenerateColumns="False"
                            KeyDown="gLTransRadGridView_KeyDown" ItemsSource="{Binding ElementName=dfUser,Path=CurrentItem.GLTrans,Mode=TwoWay}" SelectionChanged="gLTransRadGridView_SelectionChanged" AddingNewDataItem="gLTransRadGridView_AddingNewDataItem" RowEditEnded="gLTransRadGridView_RowEditEnded" DataLoadMode="Asynchronous" CanUserInsertRows="True" IsSynchronizedWithCurrentItem="true" >
            <telerik:RadGridView.Columns>
                <telerik:GridViewComboBoxColumn Header="Combo" DataMemberBinding="{Binding Account.AccountId,Mode=TwoWay}" SelectedValueMemberPath="AccountId"
                                                DisplayMemberPath="AccountNumber" UniqueName="cbAccounts" IsComboBoxEditable="True" />
                <telerik:GridViewDataColumn Header="Tran Description" DataMemberBinding="{Binding TranDescription,Mode=TwoWay}"/>
                <telerik:GridViewDataColumn Header="Credit" DataMemberBinding="{Binding Credit,Mode=TwoWay}"/>
                <telerik:GridViewDataColumn Header="Debit" DataMemberBinding="{Binding Debit,Mode=TwoWay}"/>
            </telerik:RadGridView.Columns>
        </telerik:RadGridView>

Now the code which isn't doing anything is

        
private void gLTransRadGridView_RowEditEnded(object sender, GridViewRowEditEndedEventArgs e)
       {
           gLTransRadGridView.CommitEdit();
          // dfUser.CommitEdit();
           if (!_bgpContext.IsSubmitting)
               _bgpContext.SubmitChanges();
            }
 
 
 private void gLTransRadGridView_AddingNewDataItem(object sender, Telerik.Windows.Controls.GridView.GridViewAddingNewEventArgs e)
       {
           e.NewObject = new GLTran();
       }

I have added proper includes in the metadata file and the entities are getting displayed on the client.

Help is highly appreciated.

Thanks,

1 Answer, 1 is accepted

Sort by
0
eraashishgupta
Top achievements
Rank 1
answered on 01 Nov 2010, 12:41 PM
Hi all,

I dont think the problem is unsolvable some of you might have really faced this in real time, i need it a little urget can you please help on this.

Thanks,
Tags
GridView
Asked by
eraashishgupta
Top achievements
Rank 1
Answers by
eraashishgupta
Top achievements
Rank 1
Share this question
or