这是我的.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.Any帮助?
答案 0 :(得分:1)
您需要在网格视图标记中设置AutoGenerateColumns
属性,如下所示:
<asp:GridView ID="gvPredstave" runat="server" CssClass="gridview" AlternatingRowStyle-CssClass="even" AutoGenerateColumns="True">
</asp:GridView>
注意:无论是从数据库返回什么内容都不会显示,因为您还没有告诉网格视图“显示什么”。将AutoGenerateColumns
设置为True
会指示网格视图从数据库中获取任何列,并将它们作为网格中的列,因此您可能会获得比{{1}更吸引人的列标题例如。
要控制要在网格视图中显示的列以及这些列的名称应该是什么,那么您需要使用网格视图的SYSTEM_ID
属性声明列,如下所示:< / p>
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
媒体资源的详情,请阅读MSDN documentation for GridView.Columns Property