0

这是我的 .aspx 页面的一部分

<div>
    <asp:GridView ID="gvPredstave" runat="server" CssClass="gridview" AlternatingRowStyle-CssClass="even">
    </asp:GridView>
</div>

这是我的代码隐藏

OracleCommand cmd = new OracleCommand();
        OracleDataReader reader;
        cmd.Connection = conn;
        DataTable table = new DataTable();

        cmd.CommandText = "select ime_predstave from predstava";
        cmd.CommandType = CommandType.Text;
        reader = cmd.ExecuteReader();

        table.Load(reader);
        gvPredstave.DataSource = table;
        gvPredstave.DataBind();

当我启动我的应用程序时,我没有看到 gridview。任何帮助?

4

1 回答 1

1

您需要AutoGenerateColumns在网格视图标记中设置属性,如下所示:

<asp:GridView ID="gvPredstave" runat="server" CssClass="gridview" AlternatingRowStyle-CssClass="even" AutoGenerateColumns="True">
</asp:GridView>

注意:无论从数据库中返回或未返回的内容都不会显示,因为您还没有告诉网格视图“显示什么”。将 设置AutoGenerateColumnsTrue指示网格视图从数据库中获取任何列并将它们作为网格中的列,因此您可能会获得不那么吸引人的列标题SYSTEM_ID,例如。

要控制您希望在网格视图中显示哪些列以及这些列的名称应该是什么,那么您需要使用Columns网格视图的属性来声明列,如下所示:

<asp:GridView ID="gvPredstave" runat="server" CssClass="gridview" AlternatingRowStyle-CssClass="even">
    <Columns>
        <asp:boundfield datafield="SYSTEM_ID" headertext="System ID"/>
    </Columns>
</asp:GridView>

注意:当显式声明该Columns属性时,请确保删除该AutoGenerateColumns属性,这样您就不会同时渲染两个东西,一个值不会胜过另一个;你会得到两者。

有关GridView'sColumns属性的更多信息,请阅读GridView.Columns 属性的 MSDN 文档

于 2013-07-29T14:48:18.747 回答