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

weird behavior for my radgridview, can you help me??

5 Answers 87 Views
GridView
This is a migrated thread and some comments may be shown as answers.
Tai
Top achievements
Rank 1
Tai asked on 19 Nov 2010, 11:58 PM
Hi

NOTE: i don't use DomainDataSource to support the ItemsSource for the radgridview in my case(other cases, I always use domainDataSorce. And the behavior of the INSERT keyboard works nicely as your demo) . But if your solution use domainDataSource, then it is fine to me too.

I have 3 tables with the relationship(AND use Entity Framework with RIA service to retrieve the data by using the [Include] attribute)
Policy-PolicyYear  : one to many
PolicyYear-PolicyDetail: one to many

My screen design will let the user input new Policy. Then after that they will input new PolicyYear for that policy. Then i will have a radgridview to let the user input PolicyDetails (as much as they want) for that new specific policyYear.
Then after pressing save, all of the related entity will be saved to the database accordingly.
This is my setup code
//Testing area : will be erased later
           policy = new Policy();
           policyYear = new PolicyYear() { PolicyId = policy.PolicyId,EffectiveDate=DateTime.Now,ExpirationDate=DateTime.Now,CancelDate=DateTime.Now };
           
           policyGrid.DataContext = policy;
           policyYearGrid.DataContext = policyYear;
           policyDetailRadGridView.ItemsSource = policyYear.PolicyDetails;
as you see that in the early state, the policyYear.PolicyDetails is an empty EntityCollection<PolicyDetail> because the policyYear has just been created. And policyYear.PolicyDetails collection will be filled out through the radgridview

(pictures included)
However, my problem is that When i press the INSERT keyboard, the radgridview always shows TWO new rows for the first time pressing Insert. The interesting thing is that if i type anything on the first new row, the second new row will be duplicated exactly the same values as the first rows.
And if i type anything on the second new rows , nothing will be stored if i press the saved button(and I WILL GET ERROR. Saying that "PolicyDetail has been editted and it needs to call the CommitEdit") ===> I try to call policydetailRadGridView.CommitEdit() but not helping at all. 

I have included the XAML code for my screen and the code behind. And the SQL code if you want to reproduce the problem 

<Grid x:Name="LayoutRoot" Background="White">
        
             
         
        <Grid.RowDefinitions>
            <RowDefinition Height="93*" />
            <RowDefinition Height="179*" />
            <RowDefinition Height="234*" />
        </Grid.RowDefinitions>
        <Grid Name="policyGrid">
            
            <Grid.RowDefinitions>
                <RowDefinition Height="24*" />
                <RowDefinition Height="30*" />
                <RowDefinition Height="39*" />
            </Grid.RowDefinitions>
            <sdk:Label Height="22" HorizontalAlignment="Left" Name="policyLB" VerticalAlignment="Top" Width="47" Content="Policy" />
            <sdk:Label Grid.Row="1" Height="23" HorizontalAlignment="Left" Margin="-1,0,0,0" Name="policyCodeLB" VerticalAlignment="Top" Width="73" Content="Policy Code:" />
            <TextBox Grid.Row="1" Height="23" Margin="96,0,0,0" Name="policyCodeTB" Text="{Binding PolicyCode,Mode=TwoWay,ValidatesOnDataErrors=True,NotifyOnValidationError=True,ValidatesOnExceptions=True}" VerticalAlignment="Top" HorizontalAlignment="Left" Width="76" />
             
            <sdk:Label Content="Policy Desc:" Height="23" HorizontalAlignment="Left" Margin="241,0,0,0" Name="descriptionLB" VerticalAlignment="Top" Width="73" Grid.Row="1" />
            <TextBox Height="23" Margin="352,0,0,0" Name="policyDescriptionTB" Text="{Binding PolicyDescription,Mode=TwoWay,ValidatesOnDataErrors=True,NotifyOnValidationError=True,ValidatesOnExceptions=True}"  VerticalAlignment="Top" Grid.Row="1" HorizontalAlignment="Left" Width="76" />
             
            
            <sdk:Label Content="Financial Dep:" Height="23" HorizontalAlignment="Left" Margin="-1,0,0,0" Name="fDepartmentLB" VerticalAlignment="Top" Width="85" Grid.Row="2" />
            <TextBox Height="23" HorizontalAlignment="Left" Margin="96,0,0,0" Name="financialDepartmentTB" Text="{Binding FinancialDepartment, Mode=TwoWay,ValidatesOnDataErrors=True,ValidatesOnNotifyDataErrors=True,ValidatesOnExceptions=True}" VerticalAlignment="Top" Width="76" Grid.Row="2" />
            
            
            
        </Grid>
        <Grid Grid.Row="1" Name="policyYearGrid">
            <Grid.RowDefinitions>
                <RowDefinition Height="25*" />
                <RowDefinition Height="154*" />
            </Grid.RowDefinitions>
            <sdk:Label Content="Policy Year" Height="22" HorizontalAlignment="Left" Name="policyYearLB" VerticalAlignment="Top" Width="72" />
            <sdk:Label Content="Policy Year Code:" Height="22" HorizontalAlignment="Left" Margin="-1,0,0,0" Name="yearCodeLB" VerticalAlignment="Top" Width="101" Grid.Row="1" />
            <TextBox KeyDown="policyYearCodeTB_KeyDown"  TextChanged="policyYearCodeTB_TextChanged" Height="23" HorizontalAlignment="Left" Margin="96,0,0,0" Name="policyYearCodeTB"  Text="{Binding PolicyYearCode, Mode=TwoWay, ValidatesOnDataErrors=True, ValidatesOnNotifyDataErrors=True, ValidatesOnExceptions=True}" VerticalAlignment="Top" Width="76" Grid.Row="1" />
            <sdk:Label Content="Agent Code:" Height="22" HorizontalAlignment="Left" Margin="-1,30,0,0" Name="agentCodeLB" VerticalAlignment="Top" Width="73" Grid.Row="1" />
            <TextBox Height="23" HorizontalAlignment="Left" Margin="96,29,0,0" Name="agentCodeTB" Text="{Binding AgentCode, Mode=TwoWay, ValidatesOnDataErrors=True, ValidatesOnNotifyDataErrors=True, ValidatesOnExceptions=True}" VerticalAlignment="Top" Width="76" Grid.Row="1" />
            
             
        
             
        </Grid>
        <Grid Grid.Row="2" Name="policyDetailGrid">
            
 
             
            <telerik:RadGridView Name="policyDetailRadGridView"   AutoGenerateColumns="False"
                              ActionOnLostFocus="CommitEdit"            
                             ShowGroupPanel="False"
                            AddingNewDataItem="policyDetailRadGridView_AddingNewDataItem"
                             DataLoadMode="Asynchronous"
                             
                             IsSynchronizedWithCurrentItem="false"
                              
                             >
                <telerik:RadGridView.Columns>
                    <telerik:GridViewDataColumn DataMemberBinding="{Binding AgentCommissionOverride, Mode=TwoWay}" Header="Agent Comm" />
                     
                                                    
                     
                                                     
                    <telerik:GridViewDataColumn DataMemberBinding="{Binding PolicyDetailDescription, Mode=TwoWay}" Header="Description" />
                    <telerik:GridViewDataColumn Header="Eff Date" DataMemberBinding="{Binding EffectiveDate,Mode=TwoWay}" DataFormatString="{}{0:d}"/>
                     
                     
 
                </telerik:RadGridView.Columns>
            </telerik:RadGridView>
        </Grid>
    </Grid>


public partial class PolicyMaintenance : RadWindow
   {
       #region private members
       private PolicyMaintenanceContext policyMaintenance_ctx = new PolicyMaintenanceContext();
 
       private PolicySearch policySearchScreen;
       private BusinessCodeSearchGrid businessCodeSearchGrid;
       private PolicyYearSearch policyYearSearch;
 
       // use this one so we won't load the Policy entities second time everytime we click on the search
       private bool isSearchPolicyLoaded = false;
       private bool hasConcurrencyIssue = false;
 
       private Policy policy;
       private PolicyYear policyYear;
       
        
       #endregion
 
       #region constructor
       public PolicyMaintenance()
       {
           InitializeComponent();
            
 
           //Testing area : will be erased later
           policy = new Policy();
           policyYear = new PolicyYear() { PolicyId = policy.PolicyId,EffectiveDate=DateTime.Now,ExpirationDate=DateTime.Now,CancelDate=DateTime.Now };
           
           policyGrid.DataContext = policy;
 
           //Setup Data for PolicyYear Panel and PolicyYear radgridview
           SetUpYearAndDetail();
 
            
           
           
           //
       }
 
       #endregion
 
       #region Setup Data for PolicyYear Panel and PolicyYear radgridview
       private void SetUpYearAndDetail()
       {
           policyYearGrid.DataContext = policyYear;
           policyDetailRadGridView.ItemsSource = policyYear.PolicyDetails;
       }
       #endregion
 

       
 #region Adding/Edited/Delete event handler for policy detail radgridview
       private void policyDetailRadGridView_AddingNewDataItem(object sender, Telerik.Windows.Controls.GridView.GridViewAddingNewEventArgs e)
       {
           policyDetailRadGridView.CurrentColumn = this.policyDetailRadGridView.Columns[0];

           var newPolicyDetail = new PolicyDetail() { PolicyYearId = policyYear.PolicyYearId, EffectiveDate = DateTime.Now };
          
         policyYear.PolicyDetails.Add(newPolicyDetail);
           e.NewObject = newPolicyDetail;
       }

       #endregion
     private void saveRBT_Click(object sender, RoutedEventArgs e)
      {
          policyDetailRadGridView.CommitEdit();
          if (policy == null)
          {
              return;
          }
          if (policy.PolicyId == 0)
          {
              //check for the case the new policy already been added due to "Submit failed" case
              if (!policyMaintenance_ctx.Policies.Contains(policy))
              {
                  policyMaintenance_ctx.Policies.Add(policy);
                  policy.PolicyYears.Add(policyYear);
              }
 
          }
          else
          {
              //for the case more PolicyYears has been added to the policy
              if (!policy.PolicyYears.Contains(policyYear))
              {
                  policy.PolicyYears.Add(policyYear);
              }
 
          }
          
              policyMaintenance_ctx.SubmitChanges(lo =>
                  {
 
                      if (lo.HasError)
                      {
                          hasConcurrencyIssue = false;
 
                          foreach (Entity entity in lo.EntitiesInError)
                          {
 
 
                              //Process entity conflict concurrency
                              if (entity.EntityConflict != null)
                              {
                                  hasConcurrencyIssue = true;
                                  MessageBox.Show("An update concurrency issue occur.");
                                  break;
 
                              }
                          }
                          if (!hasConcurrencyIssue)
                          {
 
                              MessageBox.Show("save failed");
                          }
 
                          lo.MarkErrorAsHandled();
                      }
                      else
                      {
                          // active Add buttons
                          addPolicyRBT.IsEnabled = true;
                          addPolicyYearRBT.IsEnabled = true;
                          MessageBox.Show("save successfully");
                      }
                  }, null);
           
      
    
            
           
 
      
     
               
               
 
               
 
              
 
     

#region Adding/Edited/Delete event handler for policy detail radgridview
      private void policyDetailRadGridView_AddingNewDataItem(object sender, Telerik.Windows.Controls.GridView.GridViewAddingNewEventArgs e)
      {
          policyDetailRadGridView.CurrentColumn = this.policyDetailRadGridView.Columns[0];
 
          var newPolicyDetail = new PolicyDetail() { PolicyYearId = policyYear.PolicyYearId, EffectiveDate = DateTime.Now };
          
        policyYear.PolicyDetails.Add(newPolicyDetail);
          e.NewObject = newPolicyDetail;
      }
 
      #endregion





My Web service on .web project (Note: i also use [Include] attribute)

namespace SilverFinancials.Web.Services
{
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.ComponentModel.DataAnnotations;
    using System.Data;
    using System.Linq;
    using System.ServiceModel.DomainServices.EntityFramework;
    using System.ServiceModel.DomainServices.Hosting;
    using System.ServiceModel.DomainServices.Server;
    using SilverFinancials.Web.Models;
 
 
    // Implements application logic using the SilverFinancialsEntities context.
    // TODO: Add your application logic to these methods or in additional methods.
    // TODO: Wire up authentication (Windows/ASP.NET Forms) and uncomment the following to disable anonymous access
    // Also consider adding roles to restrict access as appropriate.
    // [RequiresAuthentication]
    [EnableClientAccess()]
    public class PolicyMaintenanceService : LinqToEntitiesDomainService<SilverFinancialsEntities>
    {
        //////////////////////////////Extra Operation Services///////////////////////////////////
        public IQueryable<PolicyYear> GetPolicyYearsByPolicyId(int policyId)
        {
            return this.ObjectContext.PolicyYears.Include("PolicyDetails").Where(p => p.PolicyId == policyId);
        }
        public IQueryable<PolicyDetail> GetPolicyDetailsByPolicyYearId(int policyYearId)
        {
            return this.ObjectContext.PolicyDetails.Where(p => p.PolicyYearId == policyYearId);
        }
 
            //Not used for now
        public PolicyYear GetPolicyYearByPolicyYearCode(int policyId, string policyYearCode)
        {
            return this.ObjectContext.PolicyYears.Include("PolicyDetails").Where(p => p.PolicyId == policyId && p.PolicyYearCode == policyYearCode).FirstOrDefault();
        }
 
        // TODO:
        // Consider constraining the results of your query method.  If you need additional input you can
        // add parameters to this method or create additional query methods with different names.
        // To support paging you will need to add ordering to the 'Policies' query.
        public IQueryable<Policy> GetPolicies()
        {
            return this.ObjectContext.Policies.Include("PolicyYears").Include("PolicyYears.PolicyDetails");
        }
 
        public void InsertPolicy(Policy policy)
        {
            if ((policy.EntityState != EntityState.Detached))
            {
                this.ObjectContext.ObjectStateManager.ChangeObjectState(policy, EntityState.Added);
            }
            else
            {
                this.ObjectContext.Policies.AddObject(policy);
            }
        }
 
        public void UpdatePolicy(Policy currentPolicy)
        {
            this.ObjectContext.Policies.AttachAsModified(currentPolicy, this.ChangeSet.GetOriginal(currentPolicy));
        }
 
        public void DeletePolicy(Policy policy)
        {
            if ((policy.EntityState != EntityState.Detached))
            {
                this.ObjectContext.ObjectStateManager.ChangeObjectState(policy, EntityState.Deleted);
            }
            else
            {
                this.ObjectContext.Policies.Attach(policy);
                this.ObjectContext.Policies.DeleteObject(policy);
            }
        }
 
        // TODO:
        // Consider constraining the results of your query method.  If you need additional input you can
        // add parameters to this method or create additional query methods with different names.
        // To support paging you will need to add ordering to the 'PolicyDetails' query.
        public IQueryable<PolicyDetail> GetPolicyDetails()
        {
            return this.ObjectContext.PolicyDetails;
        }
 
        public void InsertPolicyDetail(PolicyDetail policyDetail)
        {
            if ((policyDetail.EntityState != EntityState.Detached))
            {
                this.ObjectContext.ObjectStateManager.ChangeObjectState(policyDetail, EntityState.Added);
            }
            else
            {
                this.ObjectContext.PolicyDetails.AddObject(policyDetail);
            }
        }
 
        public void UpdatePolicyDetail(PolicyDetail currentPolicyDetail)
        {
            this.ObjectContext.PolicyDetails.AttachAsModified(currentPolicyDetail, this.ChangeSet.GetOriginal(currentPolicyDetail));
        }
 
        public void DeletePolicyDetail(PolicyDetail policyDetail)
        {
            if ((policyDetail.EntityState != EntityState.Detached))
            {
                this.ObjectContext.ObjectStateManager.ChangeObjectState(policyDetail, EntityState.Deleted);
            }
            else
            {
                this.ObjectContext.PolicyDetails.Attach(policyDetail);
                this.ObjectContext.PolicyDetails.DeleteObject(policyDetail);
            }
        }
 
        // TODO:
        // Consider constraining the results of your query method.  If you need additional input you can
        // add parameters to this method or create additional query methods with different names.
        // To support paging you will need to add ordering to the 'PolicyYears' query.
        public IQueryable<PolicyYear> GetPolicyYears()
        {
            return this.ObjectContext.PolicyYears;
        }
 
        public void InsertPolicyYear(PolicyYear policyYear)
        {
            if ((policyYear.EntityState != EntityState.Detached))
            {
                this.ObjectContext.ObjectStateManager.ChangeObjectState(policyYear, EntityState.Added);
            }
            else
            {
                this.ObjectContext.PolicyYears.AddObject(policyYear);
            }
        }
 
        public void UpdatePolicyYear(PolicyYear currentPolicyYear)
        {
            this.ObjectContext.PolicyYears.AttachAsModified(currentPolicyYear, this.ChangeSet.GetOriginal(currentPolicyYear));
        }
 
        public void DeletePolicyYear(PolicyYear policyYear)
        {
            if ((policyYear.EntityState != EntityState.Detached))
            {
                this.ObjectContext.ObjectStateManager.ChangeObjectState(policyYear, EntityState.Deleted);
            }
            else
            {
                this.ObjectContext.PolicyYears.Attach(policyYear);
                this.ObjectContext.PolicyYears.DeleteObject(policyYear);
            }
        }
    }
}


and its MetaData files. Note: that i also use Include attribute

namespace SilverFinancials.Web.Models
{
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.ComponentModel.DataAnnotations;
    using System.Data.Objects.DataClasses;
    using System.Linq;
    using System.ServiceModel.DomainServices.Hosting;
    using System.ServiceModel.DomainServices.Server;
    using SilverFinancials.Web.CustomValidators;
 
 
    // The MetadataTypeAttribute identifies PolicyMetadata as the class
    // that carries additional metadata for the Policy class.
    [MetadataTypeAttribute(typeof(Policy.PolicyMetadata))]
    public partial class Policy
    {
 
        // This class allows you to attach custom attributes to properties
        // of the Policy class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class PolicyMetadata
        {
 
            // Metadata classes are not meant to be instantiated.
            private PolicyMetadata()
            {
            }
 
            public string FinancialDepartment { get; set; }
 
            public string PolicyCode { get; set; }
 
            public string PolicyDescription { get; set; }
 
            public int PolicyId { get; set; }
 
            public PolicyType PolicyType { get; set; }
 
            public int PolicyTypeId { get; set; }
 
            [Include]
            public EntityCollection<PolicyYear> PolicyYears { get; set; }
 
            public Risk Risk { get; set; }
 
            public int RiskId { get; set; }
 
            public SubRisk SubRisk { get; set; }
 
            public int SubRiskId { get; set; }
        }
    }
 
    // The MetadataTypeAttribute identifies PolicyDetailMetadata as the class
    // that carries additional metadata for the PolicyDetail class.
    [MetadataTypeAttribute(typeof(PolicyDetail.PolicyDetailMetadata))]
    public partial class PolicyDetail
    {
 
        // This class allows you to attach custom attributes to properties
        // of the PolicyDetail class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class PolicyDetailMetadata
        {
 
            // Metadata classes are not meant to be instantiated.
            private PolicyDetailMetadata()
            {
            }
 
            public decimal AgentCommissionOverride { get; set; }
 
            public decimal AnnualPremium { get; set; }
 
            public int CommissionId { get; set; }
 
            public Coverage Coverage { get; set; }
 
            public int CoverageId { get; set; }
 
            public DateTime EffectiveDate { get; set; }
 
            public string PolicyDetailDescription { get; set; }
 
            public int PolicyDetailId { get; set; }
 
            public PolicyYear PolicyYear { get; set; }
 
            public int PolicyYearId { get; set; }
 
            public byte[] TableVersion { get; set; }
 
            public string TransactionTypeId { get; set; }
 
            public decimal WrittenPremium { get; set; }
        }
    }
 
    // The MetadataTypeAttribute identifies PolicyYearMetadata as the class
    // that carries additional metadata for the PolicyYear class.
    [MetadataTypeAttribute(typeof(PolicyYear.PolicyYearMetadata))]
    public partial class PolicyYear
    {
 
        // This class allows you to attach custom attributes to properties
        // of the PolicyYear class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class PolicyYearMetadata
        {
 
            // Metadata classes are not meant to be instantiated.
            private PolicyYearMetadata()
            {
            }
            [CustomValidation(typeof(BusinessCodeForeignConstraintValidator), "DoesBusinessCodeExist")]
            public string AgentCode { get; set; }
 
            public BillType BillType { get; set; }
 
            public int BillTypeId { get; set; }
 
            public DateTime CancelDate { get; set; }
             [CustomValidation(typeof(BusinessCodeForeignConstraintValidator), "DoesBusinessCodeExist")]
            public string CarrierCode { get; set; }
 
            public DateTime EffectiveDate { get; set; }
 
            public DateTime ExpirationDate { get; set; }
             [CustomValidation(typeof(BusinessCodeForeignConstraintValidator), "DoesBusinessCodeExist")]
            public string FinanceCode { get; set; }
             [CustomValidation(typeof(BusinessCodeForeignConstraintValidator), "DoesBusinessCodeExist")]
            public string InsuredCode { get; set; }
 
            public Policy Policy { get; set; }
 
            [Include]
            public EntityCollection<PolicyDetail> PolicyDetails { get; set; }
 
            public int PolicyId { get; set; }
 
            public PolicyStatu PolicyStatu { get; set; }
 
            public int PolicyStatusId { get; set; }
 
            public string PolicyYearCode { get; set; }
 
            public int PolicyYearId { get; set; }
             [CustomValidation(typeof(BusinessCodeForeignConstraintValidator), "DoesBusinessCodeExist")]
            public string ProducerCode { get; set; }
 
            public byte[] TableVersion { get; set; }
 
            public Treaty Treaty { get; set; }
 
            public int TreatyId { get; set; }
             [CustomValidation(typeof(BusinessCodeForeignConstraintValidator), "DoesBusinessCodeExist")]
            public string UnderwriterCode { get; set; }
        }
    }
}


My SQL for creating those tables

IF  EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_PolicyDetail_PolicyYearId]') AND parent_object_id = OBJECT_ID(N'[dbo].[PolicyDetail]'))
ALTER TABLE [dbo].[PolicyDetail] DROP CONSTRAINT [FK_PolicyDetail_PolicyYearId]
GO
 
IF  EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_PolicyYear_PolicyId]') AND parent_object_id = OBJECT_ID(N'[dbo].[PolicyYear]'))
ALTER TABLE [dbo].[PolicyYear] DROP CONSTRAINT [FK_PolicyYear_PolicyId]
GO
 
 
 
 
/****** Object:  Table [dbo].[PolicyDetail]    Script Date: 11/19/2010 12:59:17 ******/
IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[PolicyDetail]') AND type in (N'U'))
DROP TABLE [dbo].[PolicyDetail]
GO
 
 
 
/****** Object:  Table [dbo].[PolicyDetail]    Script Date: 11/19/2010 12:59:18 ******/
SET ANSI_NULLS ON
GO
 
SET QUOTED_IDENTIFIER ON
GO
 
SET ANSI_PADDING ON
GO
 
CREATE TABLE [dbo].[PolicyDetail](
    [PolicyDetailId] [int] IDENTITY(1,1) NOT NULL,
    [PolicyYearId] [int] NOT NULL,
    [AgentCommissionOverride] [decimal](18, 2) NOT NULL,
     
    [PolicyDetailDescription] [varchar](60) NOT NULL,
    [EffectiveDate] [smalldatetime] NOT NULL,
     
    [TableVersion] [timestamp] NULL,
 CONSTRAINT [PK_PolicyDetail] PRIMARY KEY CLUSTERED
(
    [PolicyDetailId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
 
GO
 
SET ANSI_PADDING OFF
GO
 
 
/****** Object:  Table [dbo].[Policy]    Script Date: 11/19/2010 13:59:36 ******/
IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Policy]') AND type in (N'U'))
DROP TABLE [dbo].[Policy]
GO
 
 
 
/****** Object:  Table [dbo].[Policy]    Script Date: 11/19/2010 13:59:36 ******/
SET ANSI_NULLS ON
GO
 
SET QUOTED_IDENTIFIER ON
GO
 
SET ANSI_PADDING ON
GO
 
 
 
CREATE TABLE [dbo].[Policy](
    [PolicyId] [int] IDENTITY(1,1) NOT NULL,
    [PolicyCode] [varchar](30) NOT NULL,
    [PolicyDescription] [varchar](128) NOT NULL,
     
    [FinancialDepartment] [varchar](30) NOT NULL,
     
 CONSTRAINT [PK_Policy] PRIMARY KEY CLUSTERED
(
    [PolicyId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY],
 CONSTRAINT [AK_Policy_PolicyNumber] UNIQUE NONCLUSTERED
(
    [PolicyCode] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
 
GO
 
SET ANSI_PADDING OFF
GO
 
/****** Object:  Table [dbo].[PolicyYear]    Script Date: 11/19/2010 14:05:04 ******/
IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[PolicyYear]') AND type in (N'U'))
DROP TABLE [dbo].[PolicyYear]
GO
 
 
 
/****** Object:  Table [dbo].[PolicyYear]    Script Date: 11/19/2010 14:05:04 ******/
SET ANSI_NULLS ON
GO
 
SET QUOTED_IDENTIFIER ON
GO
 
SET ANSI_PADDING ON
GO
 
CREATE TABLE [dbo].[PolicyYear](
    [PolicyYearId] [int] IDENTITY(1,1) NOT NULL,
    [PolicyId] [int] NOT NULL,
    [PolicyYearCode] [varchar](10) NOT NULL,
    [AgentCode] [varchar](15) NOT NULL,
     
     
    [TableVersion] [timestamp] NULL,
 CONSTRAINT [PK_PolicyYear] PRIMARY KEY CLUSTERED
(
    [PolicyYearId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
 
GO
 
SET ANSI_PADDING OFF
GO
 
 
 
ALTER TABLE [dbo].[PolicyDetail]  WITH CHECK ADD  CONSTRAINT [FK_PolicyDetail_PolicyYearId] FOREIGN KEY([PolicyYearId])
REFERENCES [dbo].[PolicyYear] ([PolicyYearId])
GO
 
ALTER TABLE [dbo].[PolicyDetail] CHECK CONSTRAINT [FK_PolicyDetail_PolicyYearId]
GO
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ALTER TABLE [dbo].[PolicyYear]  WITH CHECK ADD  CONSTRAINT [FK_PolicyYear_PolicyId] FOREIGN KEY([PolicyId])
REFERENCES [dbo].[Policy] ([PolicyId])
GO
 
ALTER TABLE [dbo].[PolicyYear] CHECK CONSTRAINT [FK_PolicyYear_PolicyId]
GO

5 Answers, 1 is accepted

Sort by
0
Yordanka
Telerik team
answered on 22 Nov 2010, 04:00 PM
Hi Tai,

Unfortunately, we were unable to reproduce such behavior. The information provided by you is not enough completed because there are missing details so we couldn't test the exact case. We tried to reproduce the problem in our sample solution - but again to no avail. Is it possible for you to send us a runnable solution which we can debug ? You can do this by opening a support ticket and attaching it there. Also, can you try our latest internal build - is the problem available with latest binaries ? Thank you.
 
Greetings,
Yordanka
the Telerik team
Browse the videos here>> to help you get started with RadControls for Silverlight
0
Tai
Top achievements
Rank 1
answered on 22 Nov 2010, 07:30 PM
Hi

i have just sent my project to the support ticket

thank you
0
Tai
Top achievements
Rank 1
answered on 24 Nov 2010, 05:58 PM
Hi

have you received my support ticket project question yet?
i need help one this one because my other work will be similar to this and right now the grid is showing that weird behavior
when i supply an EntityCollection<Entity> to its itemsSource
thank you
0
Yordanka
Telerik team
answered on 25 Nov 2010, 11:47 AM
Hi Tai,

Thank you for the sample project.
We need more time to investigate the problem. We will notify you as soon as we have more information.
Please, excuse us for the inconvenience caused.
 
Greetings,
Yordanka
the Telerik team
Browse the videos here>> to help you get started with RadControls for Silverlight
0
Tai
Top achievements
Rank 1
answered on 29 Nov 2010, 11:14 PM
Hi

any update? I am still waiting
plz help me so i can move on to the next part of the project

thank you
Tags
GridView
Asked by
Tai
Top achievements
Rank 1
Answers by
Yordanka
Telerik team
Tai
Top achievements
Rank 1
Share this question
or