본문 바로가기
Skills/DevExpress

[Error] A primary key field specified using the KeyFieldName property is not found

by Hoseok 2023. 9. 20.
728x90
반응형

 

ASPxGridView, BootstrapGridView, ASPxGridLookup 컨트롤을 사용할 때, 발생할 수 있는 에러이다.

 

Editing. Selection. Master Detail. Endless Paging.

 

와 같은 ASPxGridView 기능을 사용하고 있다면, KeyFieldName property이 지정되어 있는지 확인해야 한다.


다음 여섯 가지를 확인해보자.

 

  • data source에서 KeyFieldName property에서 설정한 필드가 존재하는지, 스펠링은 틀리지 않고 정확하게 사용되고 있는지 확인하자.
  • 필드가 public이고 get/set 메서드를 가지고 있는지 확인하자.
  • data source에 변화가 있었을 경우, ASPxGridView.KeyFieldName property를 업데이트해야 하지는 않는지 확인하자.
  • data source가 데이터가 없을 경우, ASPxGridView는 스키마나 데이터에 맵핑될 수 없다. ASPxGridView.DataBinding event에 (ForceDataRowType(Type))을 사용해서 데이터의 Object 타입을 지정해주자.
// ASPX
<dx:ASPxGridView ... OnDataBinding="grid_DataBinding">  
</dx:ASPxGridView>  

// C#
protected void grid_DataBinding(object sender, EventArgs e) {  
    (sender as ASPxGridView).ForceDataRowType(typeof(객체 타입));  
}

 

  • The ASPxGridView 컨트롤이 data source에 정확하게 바인딩되어 있는지 확인하자.
  • EnableRowsCache 속성을 false로 지정한다. (캐시되지 않도록)
728x90
반응형