2011-03-24 34 views
2

我有兩個表:綁定的LinqDataSource到兩個單獨的表

實體
ID(PK,INT)
名稱

用戶
ENTITY_ID(FK到實體。 ID)
FName
LName

現在我想使用QueryString將兩個表中的所有列顯示到我的GridView。我通過配置LDS獲得了QueryString部分。我看不出你如何在一個LDS中連接兩個表?

這裏是我的代碼的標記:

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
      AllowSorting="True" AutoGenerateColumns="False" 
      DataSourceID="LinqDataSource1" Height="209px" Width="648px"> 
      <Columns> 
       <asp:BoundField DataField="Name" HeaderText="Name" ReadOnly="True" 
        SortExpression="Name" /> 
       <asp:BoundField DataField="Description" HeaderText="Description" 
        ReadOnly="True" SortExpression="Description" /> 
       <asp:BoundField DataField="Company" HeaderText="Company" ReadOnly="True" 
        SortExpression="Company" /> 
       <asp:BoundField DataField="Phone" HeaderText="Phone" ReadOnly="True" 
        SortExpression="Phone" /> 
       <asp:BoundField DataField="Fax" HeaderText="Fax" ReadOnly="True" 
        SortExpression="Fax" /> 
       <asp:BoundField DataField="Email" HeaderText="Email" ReadOnly="True" 
        SortExpression="Email" /> 
       <asp:BoundField DataField="ID" HeaderText="ID" ReadOnly="True" 
        SortExpression="ID" /> 

        <asp:BoundField DataField = 'Bind("Users.FirstName")' /> 
      </Columns> 
     </asp:GridView> 
     <asp:LinqDataSource ID="LinqDataSource1" runat="server" 
      ContextTypeName="EntityRegistration.DataAccess.OISLinq2SqlVs1DataContext" 
      EnableInsert="True" EnableUpdate="True" EntityTypeName="" OrderBy="ID" 
      Select="new (Name, Description, Company, Phone, Fax, Email, ID)" 
      TableName="Entities" Where="ID == @ID"> 
      <WhereParameters> 
       <asp:QueryStringParameter Name="ID" QueryStringField="EntityID" Type="Int32" /> 
      </WhereParameters> 
     </asp:LinqDataSource> 

正如你看到的,我也加入此列:

ASP:BoundField的數據字段= '綁定( 「Users.FirstName」)'

不知道我在做什麼錯在這裏?任何意見?

回答

0

你是綁定到名字,但你的用戶有FName或是一個錯字?

+0

對,對不起。這是一個錯字! – 2011-03-25 13:46:35

1

如果LinqDataSource中存在這樣的連接,那麼你絕對可以這樣做。

你的語法看起來雖然奇怪:

試試這個(現在不,如果這個工程):

<asp:BoundField DataField = 'Users.FirstName' /> 

還是那個(這個不工作):

<asp:TemplateField> 
<ItemTemplate> 
    <asp:Literal ID="litFoo" runat="server" Text='<%# Bind("Users.FirstName") %>' /> 
</ItemTemplate> 
</asp:TemplateField> 
+0

當我使用第二個代碼運行時,它告訴我Users.FirstName不存在。這是真的,因爲我的LDS只附加到一張桌子上。 – 2011-03-25 18:36:30

+0

@ klm9971:L2SQL映射文件需要包含這兩個類,並且映射中必須存在1對1關係 – citronas 2011-03-25 20:41:06

相關問題