2013-07-29 19 views
0

這是我的.aspx頁面中不能看到網格視圖在asp.net應用程序

<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控件。任何幫助?

+0

嘗試添加'的AutoGenerateColumns = 「真」'到你的GridView。 – AntLaC

+0

也在調試模式下,在設置數據源的位置放置一個斷點,並驗證表中是否有數據。 – AntLaC

+0

非常感謝,它的工作原理。 – daidai

回答

1

您需要設置AutoGenerateColumns屬性在網格視圖的標記,像這樣:

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

注:無論是什麼,或者不來從數據庫中不會顯示回來,因爲你還沒有告訴網格視圖「顯示什麼」。將AutoGenerateColumns設置爲True可指示網格視圖從數據庫中取回任何列,並將它們作爲網格中的列,因此,例如,您將獲得的潛在列數量可能少於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屬性,以便您不會同時呈現任何東西,其中一個值不會超過另一個;你會得到兩個。

有關GridViewColumns屬性的更多信息,請閱讀MSDN documentation for GridView.Columns Property