2013-09-10 2 views
0

새 항목을 만들 때마다이 코드에서 오류가 발생합니다.radgrid에서 새 레코드를 만들 때 항목이 있는지 감지합니다.

protected void RadGrid1_ItemCreated(object sender, GridItemEventArgs e) 
{ 
    if (e.Item is GridEditableItem && e.Item.IsInEditMode) 
    { 
     GridEditableItem editedItem = e.Item as GridEditableItem; 
     string recordIDcreateDir = editedItem.GetDataKeyValue("TransazioneID").ToString(); 
     string subPath = "Allegati\\" + recordIDcreateDir; 
     bool isExists = System.IO.Directory.Exists(Server.MapPath(subPath)); 
     if (!isExists) 
      System.IO.Directory.CreateDirectory(Server.MapPath(subPath)); 
........ 

라인 4. "범위의 예외 중 인수는"분명히 새로운 기록의 생성에 "TransazioneID"값은 아직하지 않고 나는 오류가 발생하는 이유입니다. 하지만 if 문을 사용하여 레코드의 존재를 조건부로 만들 수는 있습니까? 나는

if(editedItem.GetDataKeyValue("TransazioneID").ToString()== null); 
and.... 
if(editedItem.GetDataKeyValue("TransazioneID")!= null); and several others.... 

있지만 성공 우유없는

을 시도했다. 항목 작성시 해당 행이 실행되지 않도록하려면이 명령문에서 어떤 것을 잡을 수 있습니까?

답변

1

사용 GridTableView.DataKeyNames : Telerik의 docs에서

if (editedItem.OwnerTableView.DataKeyNames.Contains("TransazioneID")) { ... } 

GridEditableItem.GetDataKeyValue에서 언급 :

가 해당 항목 itemIndex라는 및 키 이름과 소유자 GridTableView에서 DataKeyValues를 가져옵니다. keyName은 DataKeyNames 배열에 지정된 값 중 하나 여야합니다.

+0

감사합니다. 그것은 잘 작동합니다. – FeliceM

관련 문제