【问题标题】:Why the grid view is not being displayed on the browser?为什么网格视图没有显示在浏览器上?
【发布时间】:2014-01-01 12:35:26
【问题描述】:

我刚刚开始处理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 的数据源吗?

【问题讨论】:

  • 显然你必须设置数据源,这样gridview才能显示绑定的项目。

标签: c# asp.net .net gridview


【解决方案1】:
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 好点。 &lt;asp:BoundField DataField="Date of Birth" HeaderText="Date of Birth" SortExpression="Date of Birth" /&gt; 应该是 &lt;asp:BoundField DataField="DateofBirth" HeaderText="Date of Birth" SortExpression="DateofBirth" /&gt;
【解决方案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();
    }
}

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

【讨论】:

    【解决方案3】:

    是的,您的GridView 需要一个DataSource。如果你没有在代码后面中绑定你的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 中的字段名称与BoundField 的DataField 值匹配

    你也可以使用绑定

    • 对象数据源
    • XmlDataSource
    • SqlDataSource

    欲了解更多信息,请参阅this

    【讨论】:

      猜你喜欢
      • 2014-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多