为什么网格视图没有显示在浏览器上?

时间:2014-01-01 12:35:26

标签: c# asp.net .net gridview

我刚刚开始处理ASP.NET 网络表单,我创建了一个GridView,现在只是普通GridView。 但是当我运行页面时,它会显示在浏览器中。

我的Gridview代码:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" BorderColor="#FF99CC" BorderStyle="Solid">
    <columns>
        <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
        <asp:BoundField DataField="Gender" HeaderText="Gender" SortExpression="Gender" />
        <asp:BoundField DataField="Email" HeaderText="Email" SortExpression="Email" />
        <asp:BoundField DataField="Date of Birth" HeaderText="Date of Birth" SortExpression="Date of Birth" />                
        <asp:BoundField DataField="Nationality" HeaderText="Nationality" SortExpression="Nationality" />
        <asp:BoundField DataField="Mobile" HeaderText="Mobile" SortExpression="Mobile" />
        <asp:BoundField DataField="Course" HeaderText="Course" SortExpression="Course" />
        <asp:BoundField DataField="Greaduation Year" HeaderText="Greaduation Year" SortExpression="Greaduation Year" />
        <asp:BoundField DataField="Major" HeaderText="Major" SortExpression="Major" />                
    </columns>                        
</asp:GridView>

我是否需要gridview的数据源?

3 个答案:

答案 0 :(得分:3)

DataTable dt = new DataTable();
dt.Columns.Add("Name", DbType.String);
dt.Columns.Add("Gender", DbType.String);
dt.Columns.Add("Email", DbType.String);
dt.Columns.Add("DateofBirth", DbType.String);
dt.Columns.Add("Nationality", DbType.String);
dt.Columns.Add("Mobile", DbType.String);
dt.Columns.Add("Course", DbType.String);
dt.Columns.Add("GreaduationYear", DbType.String);
dt.Columns.Add("Major", DbType.String);

从数据库填写dt中的数据,然后绑定:

GridView1.DataSource = dt;
GridView1.DataBind();

DataField="Date of Birth"中的空格移至DataField="DateofBirth"

答案 1 :(得分:2)

是的,您需要在代码后面设置数据源(aspx.cs)。您可以使用Page_Load方法执行此操作:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        var data = ... // code that retrieves the data here
        GridView1.DataSource = data;
        GridView1.DataBind();
    }
}

请注意,检索数据的代码取决于您连接数据库的方式。

答案 2 :(得分:2)

是的,DataSource需要GridView。如果你没有在代码中绑定你的GridView,那么GridView没有DataSource。您可以添加以下代码

var objDataSource; // # This can be any collection or DataTable, any suitable type of your choosing

// # TODO : Generate your data into objDatasource

GridView1.DataSource = objDataSource;
GridView1.DataBind();

确保objDataSource中的字段名称与DataField的{​​{1}}值匹配

您也可以使用

进行绑定
  • 的ObjectDataSource
  • XmlDataSource
  • 的SqlDataSource

有关详情,请参阅this