Obout Grid外键值Object Data Source

时间:2012-12-23 10:46:49

标签: c# asp.net linq obout

我正在尝试访问外键的值 我创建了一个LinqToSQL类,我创建了表之间的关系。 我已经开发了这个:

 <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>

1 个答案:

答案 0 :(得分:1)

我已联系过支持并得到了答案

你必须简单地使用它:

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