2014-04-22 56 views
0

我有一個LINQ查詢,我在使用Group By,我使用下面的查詢來綁定一個GridView。但是GridView沒有正確綁定。在所有的行,它顯示了象下面這樣:Gridview沒有正確地綁定:

System.Linq.Enumerable + WhereSelectEnumerableIterator 2[<>f__AnonymousType652 6 [System.Nullable`1 [System.Int32],System.String,System.String,System.String,系統.String,System.Int32],System.String]

我的aspx頁面是

<Columns> 
    <asp:TemplateField HeaderText="Sl no." ItemStyle-HorizontalAlign="Center"> 
    <ItemTemplate> 
     <div style="margin: 0px auto; width: auto;"> 
     <asp:Label ID="lblslno" runat="server" Text='<%#Container.DisplayIndex+1 %>'>'></asp:Label> 
     <asp:HiddenField ID="hf" runat="server" Value='<%#Eval("EmpId") %>' /> 
     </div> 
    </ItemTemplate> 
    </asp:TemplateField> 
    <asp:BoundField HeaderText="Employee Code." DataField="EmpCode" ItemStyle-HorizontalAlign="Center" /> 
    <asp:BoundField HeaderText="Employee Name" DataField="Name" /> 
    <asp:BoundField HeaderText="Department" DataField="DeptName" /> 
    <asp:BoundField HeaderText="Designation" DataField="DesigName" /> 
    <asp:TemplateField HeaderText="Total Marks" ItemStyle-HorizontalAlign="Center"> 
    <ItemTemplate> 
     <asp:Label ID="lblTotalMarks" runat="server" CssClass="Label" Text='<%#Eval("Total_Mark") %>'></asp:Label> 
    </ItemTemplate> 
    </asp:TemplateField> 
    <asp:TemplateField HeaderText="Marks Secured" ItemStyle-HorizontalAlign="Center"> 
    <ItemTemplate> 
     <asp:Label ID="lblMarksSecured" runat="server" CssClass="Label" Text='<%#Eval("Total_Mark") %>'></asp:Label> 
    </ItemTemplate> 
    </asp:TemplateField> 
    </Columns> 

和我的代碼背後,是這樣的

var query = (from a in TraningScheduleDetails 
        from b in TraningAnshwerSheet 
        from c in TraningAnshwerSheetDetails 
        from d in EmpProfessionalDetails 
        from e in EmpProfessionalJobDetails 
        from f in Department 
        from g in Designation 
        where a.TrainingScheduleDetailId == int.Parse(ddlExamDate.SelectedValue) 
        && a.TrainingScheduleDetailId == b.TrainingScheduleDetailId 
        && b.TrainingAnswerSheetId == c.TrainingAnswerSheetId 
        && b.EmployeeProfessionalDetailId == d.EmployeeProfessionalDetailId 
        && d.EmployeeProfessionalDetailId == e.EmployeeProfessionalDetailId 
        && e.DepartmentId == f.DepartmentId 
        && e.DesignationId == g.DesignationId 
        select new 
        { 
         b.EmployeeProfessionalDetailId, 
         Name = d.FirstName + " " + d.MiddleName + " " + d.LastName, 
         d.EmployeeCode, 
         f.DepartmentName, 
         g.DesignationName, 
         Total_Mark = total_Mark, 
        }).ToList(); 
     var query2=(from a in query group a by a.EmployeeProfessionalDetailId into b 
        select new 
        { 
         EmpId=b.Key,        
         Name=b.Select(c =>c.Name), 
         EmpCode=b.Select(c=>c.EmployeeCode), 
         DeptName=b.Select(c=>c.DepartmentName), 
         DesigName=b.Select(c=>c.DesignationName), 
         Total_Mark=b.Select(c=>c.Total_Mark),        
        }).ToList();   
     grdEmployeeDetails.DataSource = query2; 
     grdEmployeeDetails.DataBind(); 
+0

而不是創建一個匿名類型,你嘗試過一個對象'員工' –

回答

0

爲網格綁定定義一個新類,例如'EmployeeResults'具有必要的屬性。 並創建一個綁定到網格的對象列表。

List<EmployeeResults> employeeResults = Linq query. //Cast linq results to EmployeeResults 
grdEmployeeDetails.DataSource = employeeResults; 
grdEmployeeDetails.DataBind();