2011-04-20 4 views
0

출력이이 linq 쿼리의 출력과 바인딩되는 상위 그리드보기 (UserTransactionGridView)가 있습니다 : http://postimage.org/image/1vtpbagck/ :중첩 된 표보기를 linq 데이터 결과에 바인딩 된 gridview에 바인딩 할 때 캐스팅 오류가 발생했습니다.

 var recordList = (from CustomersRecord custsRecord in customerRecordContainer orderby custsRecord.DateOfTransaction descending group custsRecord 
          by new {custsRecord.InvoiceNumber, custsRecord.DateOfTransaction} into intermediateResult 
          select new {InvoiceNumber = intermediateResult.Key.InvoiceNumber, DateOfTransaction = intermediateResult.Key.DateOfTransaction, TotalAmount = intermediateResult.Sum(custsRecord => custsRecord.TotalAmount)}).ToList(); 
     UserTransactionGridView.DataSource = recordList; 
     UserTransactionGridView.DataBind(); 

지금은 데이터 i는 각 행의 송장 번호에 따라 아이 그리드보기 (gridview2)를 만드는거야 부모 그리드 뷰의 각 행에 결합하기 때. 나는 각 행의 인보이스 번호에 따라 데이터베이스에서 소프트웨어 타이틀을 가져 와서이 방식으로 하위 그리드보기에 바인딩한다는 의미입니다. 내 의도는 다음과 같습니다. http://postimage.org/image/2lri4f544/. 그리고 난이 달성하기 위해 다음과 같은 일을 해요 :

protected void UserTransactionGridView_RowDataBound(Object sender, GridViewRowEventArgs e) 
    { 
     if (e.Row.RowType == DataControlRowType.DataRow) 
     { 
      GridView gridView2 = (GridView)e.Row.FindControl("gridView2"); 
      System.Data.DataRowView dr = (System.Data.DataRowView)e.Row.DataItem; 
      gridView2.AutoGenerateColumns = true; 
      String x = dr[1].ToString(); 
      softwareTitlesList = SoftwareListRetrieve(); 
      ArrayList titles = new ArrayList(); 
      foreach (SoftwareTitles softwareTitle in softwareTitlesList) 
      { 
       if (softwareTitle.InvoiceNumber.Contains(x)) 
        titles.Add(softwareTitle.SoftwareTitle); 
      } 
      gridView2.DataSource = titles; 
      gridView2.DataBind(); 
      softwareTitlesList.Clear(); 
     } 
    } 

을하지만, 다음과 같은 오류가 받고 있어요 :

Unable to cast object of type '<>f__AnonymousType3`3[System.String,System.DateTime,System.Decimal]' to type 'System.Data.DataRowView'. 

답변

1

당신은 내가 생각하지 않는, DataRowViewe.Row.DateItem 변환하려고 작동 할 것이다. 참조 용으로 this example을 시도하십시오. 그 게시물의 마지막 코드에서 비슷한 일이 일어납니다.

+0

정말 고마워요 !! 너를 빚지고있어! 진실성을 알기 위해 UR 링크는 저의 석사 학위 이상으로 논문 작업을 끝내는 데 도움이되었습니다. 그리고 나는 적어도이 삶과 영원한 학문으로 끝났다고 말할 수 있습니다. 나는 당신에게 감사하는 방법을 모른다! !! –

관련 문제