2011-02-18 129 views
0

我不能绑定我的网格。我不知道我在做什么错误,当我运行该程序时,网格显示为空。如何在ASP.NET中绑定网格?

这里是我的代码::

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
      this.BindGrid(this.GridView1); 


    } 
    private void BindGrid(GridView grid) 
    { 
     SqlCommand cmd = new SqlCommand("Select * from Person", cn); 
     SqlDataAdapter da = new SqlDataAdapter(cmd); 
     DataTable dt = new DataTable(); 
     da.Fill(dt); 
     grid.DataSource = dt; 
     grid.DataBind(); 
    } 


<body> 
    <form id="form1" runat="server"> 
    <div style="margin-left: 240px"> 
    <asp:GridView ID="GridView1" runat="server" CellPadding="4" ForeColor="#333333" 
      GridLines="None" Width="856px" AutoGenerateColumns = "false" 
      ShowFooter = "true" ShowHeader="true" BorderStyle="Groove" CaptionAlign="Top" 
      HorizontalAlign="Center" onrowdatabound="GridView1_RowDataBound" > 
     <RowStyle BackColor="#F7F6F3" ForeColor="#333333" /> 
     <Columns> 
      <asp:BoundField HeaderText="ID" /> 
      <asp:BoundField HeaderText="First Name" /> 
      <asp:BoundField HeaderText="Last Name" /> 
      <asp:BoundField HeaderText="Home Phone #" /> 
      <asp:BoundField HeaderText="Cell #" /> 
      <asp:BoundField HeaderText="Email Address" /> 
      <asp:BoundField HeaderText="NIC#" /> 
      <asp:TemplateField HeaderText="Action"> 
      <ItemTemplate> 
       <asp:Button ID="Button1" runat="server" Text="Button" /> 
       <asp:Button ID="Button2" runat="server" Text="Button" /> 
      </ItemTemplate> 

     </asp:TemplateField> 
    </Columns> 
    <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" 
     /> 
    <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" /> 
    <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" /> 
    <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> 
    <EditRowStyle BackColor="#999999" /> 
    <AlternatingRowStyle BackColor="White" ForeColor="#284775" /> 
</asp:GridView> 
</div> 

</form> 
</body> 
+3

问题是什么?你有错误吗?屏幕是空白的吗? – mellamokb 2011-02-18 05:36:08

+0

你的`Page_Load`事件是否真的连接起来了?..是否执行了任何代码? – 2011-02-18 05:40:00

+0

请更详细地描述提供必要的错误细节或您的观察的问题。 – deostroll 2011-02-18 05:42:48

回答

6

看起来你是不是挂钩到您的绑定字段例如数据绑定:

<asp:boundfield datafield="ID" headertext="ID"/> 

你可以在msdn上找到如何设置一个databound字段的完整示例:here

0

试试这个:

private void BindGrid(GridView grid) 
{ 
    using(SqlConnection cn = new SqlConnection("Some Connection string")) 
    using(SqlCommand cmd = new SqlCommand("Select * from Person", cn)) 
    { 
    cmd.CommandType = CommandType.Text; 
    cmd.Connection.Open(); 
    using(SqlDataAdapter da = new SqlDataAdapter(cmd)) 
    { 
     DataTable dt = new DataTable(); 
     da.Fill(dt); 
     grid.DataSource = dt; 
     grid.DataBind(); 
    } 
    } 
}