2012-07-16 235 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中。