2014-12-19 12 views
0

엔티티 데이터 소스로 바인딩 된 radgrid가 있습니다. 그 외에는 updateCommand의 코드에서 레코드를 업데이트 할 때 데이터가 그리드에서 손실되고 데이터베이스에서 레코드가 updated.please 도움말과 함께 잘 작동합니다 this.below는 레코드를 업데이트하는 코드입니다.레코드 업데이트 후 Radgrid 데이터가 비어 있습니다.

감사합니다.

protected void RadGrid1_UpdateCommand(object sender, GridCommandEventArgs e) 
     { 
      try 
      { 
       var editItem = (GridEditableItem)e.Item; 
       var values = _extractEpisodePrograms(editItem); 
       var gettingEpisodeProgramDiagnosis_ID = (int)editItem.GetDataKeyValue("EpisodeProgramDiagnosis_ID"); 
       using (HSS_Swirl_WebEntities context = new HSS_Swirl_WebEntities()) 
       { 
        var EpisodeProgramDiagnosis = context.ClientEpisodeProgramDiagnosis.First(t => t.EpisodeProgramDiagnosis_ID == gettingEpisodeProgramDiagnosis_ID); 
        EpisodeProgramDiagnosis.EpisodeProgram_ID = 39; 
        EpisodeProgramDiagnosis.ConditionOnset = (bool)values["ConditionOnset"]; 
        EpisodeProgramDiagnosis.OtherDiagnosis = false; 
        EpisodeProgramDiagnosis.PrimaryDiagnosis = (bool)values["PrimaryDiagnosis"]; 
        EpisodeProgramDiagnosis.ICD10Diagnosis_ID = 11; 
        var CheckingDuplicateKeys = (from p in context.ClientEpisodeProgramDiagnosis where p.EpisodeProgram_ID == EpisodeProgramDiagnosis.EpisodeProgram_ID && p.ICD10Diagnosis_ID == EpisodeProgramDiagnosis.ICD10Diagnosis_ID select p).FirstOrDefault(); 
        if (CheckingDuplicateKeys == null) 
        { 
         context.SaveChanges(); 
        } 
        else { 
         ShowErrorMessage("You cannot enter duplicate values for ICD10Diagnosis_ID and EpisodeProgram_ID"); 
        } 
       } 
      } 
      catch (Exception ex) 
      { 

       var insertException = new CustomValidator(); 
       insertException.IsValid = false; 
       insertException.ErrorMessage = (ex.InnerException != null) ? ex.InnerException.ToString() : ex.Message; 
       Page.Validators.Add(insertException); 
      } 
      RadGrid1.Rebind(); 
     } 

답변

0

그래서 같은 RadGrid의 NeedDataSource 이벤트에 당신에게 데이터 소스 권한을 설정하십시오 :

protected void RadGrid1_NeedDataSource(object sender, GridNeedDataSourceEventArgs e) 
{ 
    RadGrid1.DataSource = myDataSource; 
} 

가 RadGrid1에서 OnNeedDataSource 이벤트에 RadGrid1_NeedDataSource를 연결해야합니다.

RadGrid1.DataSource = myDataSource; 
RadGrid1.Rebind(); 
:

당신은 또한 당신과 같이 바인딩 직전에 다시 데이터 소스를 설정을 시도 할 수