2012-07-16 168 views
0

我剛剛附加linq數據到gridview它不顯示行?
Gridview不顯示記錄?

DataDataContext db = new DataDataContext(); 
protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
     BindData(); 
} 

private void BindData() 
{ 
    var source = from n in db.Names 
       select n; 

    gridSample.DataSource = source.ToList<Name>(); 
    gridSample.DataBind();' 
} 

<asp:UpdatePanel ID="panelGrid" runat="server"> 
    <ContentTemplate> 
     <asp:GridView runat="server" ID="gridSample" AutoGenerateColumns="false"> 
      <Columns> 
       <asp:TemplateField HeaderText="First Name"> 
        <EditItemTemplate> 
         <asp:TextBox ID="txtFirstName" runat="server" Text='<%Bind("FirstName") %>' /> 
        </EditItemTemplate> 
        <ItemTemplate> 
         <asp:Label runat="server" ID="lblFirstName" Text='<%Eval("FirstName") %>' /> 
        </ItemTemplate> 
       </asp:TemplateField> 
       <asp:TemplateField HeaderText="Last Name"> 
        <EditItemTemplate> 
         <asp:TextBox ID="txtLastName" runat="server" Text='<%Bind("LastName") %>' /> 
        </EditItemTemplate> 
        <ItemTemplate> 
         <asp:Label runat="server" ID="lblLastName" Text='<%Eval("LastName") %>' /> 
        </ItemTemplate> 
       </asp:TemplateField> 
       <asp:TemplateField HeaderText="Date of Birth"> 
        <EditItemTemplate> 
         <asp:TextBox ID="txtDOB" runat="server" Text='<%Bind("DOB") %>' /> 
        </EditItemTemplate> 
        <ItemTemplate> 
         <asp:Label runat="server" ID="lblDOB" Text='<%Eval("DOB") %>' /> 
        </ItemTemplate> 
       </asp:TemplateField> 
      </Columns> 
     </asp:GridView> 
    </ContentTemplate> 
</asp:UpdatePanel> 
+0

你寫錯了用'<%#Eval(「DOB」)%>'來讀取它們。注意'#' – Aristos 2012-07-16 10:55:29

回答

0

要麼試試這個

List<Name> source = (from n in db.Names select n).ToList(); 

     gridSample.DataSource = source; 
     gridSample.DataBind();' 


<asp:TextBox ID="txtFirstName" runat="server" Text='<%# Bind("FirstName") %>' /> 
+0

感謝這工作,但現在gridview只顯示兩行,而我從db獲得12行。 – 2012-07-16 11:05:25

+0

在你的源變量上添加一個斷點,並查看它的集合中有多少個 – JohnnBlade 2012-07-16 11:07:41

+0

我想調用你的表用戶將是一個更好的練習,然後只是名稱 – JohnnBlade 2012-07-16 11:08:37

0

使用,

<asp:Label runat="server" ID="lblDOB" Text='<%# Eval("DOB") %>' /> 

<asp:Label runat="server" ID="lblDOB" Text='<%# Bind("DOB") %>' /> 
+0

感謝這工作,但現在gridview只顯示兩行,而我越來越來自db的12行。 – 2012-07-16 11:05:37

+0

請檢查您在c#中的選擇查詢。它是否返回12條記錄? – Matt 2012-07-16 11:08:51

0

試試這個:

private void BindData() 
    { 

     var source = from n in db.Names 
        select n; 

     gridSample.DataSource = source; 
     gridSample.DataBind();' 
    } 

問候

0

設置屬性

的AutoPostBack =真

爲GridView。因爲它在UpdatePanel中。