2012-07-10 48 views
0

我有一個連接兩個表的LINQ表達式。我想將'List'綁定到Gridview。該代碼在Gridview模板中發生此錯誤: DataBinding:'SearchResult'不包含名爲'codereq'的屬性。在Linq中通過Eval綁定Gridview

IQueryable<SearchResult> myList = from t in TBL_Apartment 
    join k in TBL_Owner on t.Code equals k.Code 
    where k.CodeReq == t.CodeReq 

     select new SearchResult 
     { 
      codereq= t.CodeReq, 
      name = t.Name 
     } 

public class SearchResult 
{ 
    public string codereq; 
    public string name; 
} 

綁定的GridView代碼:

GridSearch.DataSource = myList.ToList(); 
    GridSearch.DataBind(); 

爲網格視圖我的aspx頁面如下:

<telerik:RadGrid ID="GridSearch" runat="server" Skin="Office2007" AutoGenerateColumns="False" 
     dir="rtl" Width="750px" GridLines="None" > 

<MasterTableView> 
<Columns> 

<telerik:GridTemplateColumn HeaderText="Request Code" FilterControlWidth="100px"> 
<ItemTemplate> 
<asp:Label ID="Label1" runat="server" Text='<%# Eval("codereq")==""?"0":Eval("codereq") %>'></asp:Label> 
</ItemTemplate> 
</telerik:GridTemplateColumn> 

<telerik:GridTemplateColumn HeaderText="Owner Name" FilterControlWidth="100px"> 
<ItemTemplate> 
<asp:Label ID="Lbl_Mahale" runat="server" Text='<%# Eval("name")==""?"":Eval("name") %>'></asp:Label> 
</ItemTemplate> 
</telerik:GridTemplateColumn> 

</Columns> 
</MasterTableView> 

<PagerStyle AlwaysVisible="True" /> 
<ClientSettings><Selecting AllowRowSelect="True" /></ClientSettings> 

</telerik:RadGrid> 
+0

添加屬性aparteman到您的SearchResult類 – JohnnBlade 2012-07-10 05:51:06

+0

並更好地使用string.empty代替「」 – JohnnBlade 2012-07-10 05:51:49

+0

@JohnnBlade對不起,我現在編輯了代碼 – ArMaN 2012-07-10 05:52:57

回答

0

這應該有助於

var myCodeReq = 1; (or some other type of variable) 

    List<SearchResult> myList = (from t in TBL_Apartment join k in TBL_Owner on t.Code equals k.Code where k.CodeReq == myCodeReq select new SearchResult { codereq = t.CodeReq, name = t.Name }).ToList(); 

    GridSearch.DataSource = myList; 
    GridSearch.DataBind();