2012-12-23 22 views
0

我試圖訪問外鍵的值 我創建了一個LinqToSQL類,我創建了表之間的關係。 我已經開發了這一點:Obout Grid外鍵值對象數據源

<asp:ObjectDataSource ID="odsEmp" runat="server" 
    SelectMethod="GetAllEmployees" TypeName="Emp"></asp:ObjectDataSource> 
</asp:LinqDataSource> 
<cc1:Grid ID="Grid1" runat="server" AutoGenerateColumns="False" 
    DataSourceID="odsEmp" > 
    <Columns> 
     <cc1:Column DataField="ID" HeaderText="ID" Index="0" ReadOnly="True" 
      Visible="False"> 
     </cc1:Column> 
     <cc1:Column DataField="EmpName" HeaderText="EmpName" Index="1"> 
     </cc1:Column> 
     <cc1:Column DataField="DeptID" HeaderText="Dept" Index="2"> 
     </cc1:Column> 
     <cc1:Column DataField="DeptID" HeaderText="DeptName" Index="6"> 
     <TemplateSettings TemplateId="templateDeptItem" /> 
     </cc1:Column> 
    </Columns> 
    <Templates> 
    <cc1:GridTemplate ID="templateDeptItem"> 
    <Template> 
     <%# Container.DataItem["Dept.DeptName"]%> 
    </Template> 
    </cc1:GridTemplate> 
    </Templates> 
</cc1:Grid> 

到目前爲止,我無法檢索部門名稱。

由於我沒有使用付費版本,因此支持不會回覆我。

任何想法我做錯了什麼?

我創建使用ASP.Net的GridView另一個網格,它工作得很好

<asp:GridView ID="GridView1" runat="server" 
    DataSourceID="odsEmp" AutoGenerateColumns="False" 
    AutoGenerateEditButton="True"> 
    <Columns> 
     <asp:BoundField DataField="ID" HeaderText="ID" /> 
     <asp:BoundField DataField="EmpName" HeaderText="EmpName" /> 
     <asp:TemplateField HeaderText="Dept">    
      <ItemTemplate> 
       <asp:Label ID="Label1" runat="server" Text='<%# Bind("Dept.DeptName") %>'></asp:Label> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
</asp:GridView> 
+0

歡迎!你會得到什麼樣的錯誤?你拼錯了列名嗎?如果你添加更多的信息(背景,你試圖達到什麼等),你將有更好的機會獲得良好的答案。 –

回答

1

我所接觸的支持,並得到了答案

你必須簡單地使用:

<cc1:GridTemplate ID="templateDeptItem"> 
    <Template> 
     <%# ((Dept)((Emp)Container.DataObject).Dept).DeptName%> 
    </Template> 
    </cc1:GridTemplate>