2013-12-08 118 views
0

確定,所以我確定問題出在後面的代碼,什麼是不正確..ASP.NET的GridView不顯示

DAL是一個類,從數據庫中獲取數據,和它的作品,肯定..後面

代碼:

using DALLib; 
using System; 
using System.Collections.Generic; 
using System.Configuration; 
using System.Data; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

namespace FinalProject 
{ 
    public partial class בתים : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      if (!IsPostBack) 
      { 
       MaxRooms.Attributes.Add("onChange", "return OnSelectedIndexChange()"); 
       MinRooms.Attributes.Add("onChange", "return OnSelectedIndexChange()"); 

       Cities.DataSource = (DataTable)Application["CitiesTable"]; 
       Cities.DataTextField = "Name"; 
       Cities.DataBind(); 
      } 

      DAL findHouses = new DAL(
       "SELECT * FROM Houses WHERE City='" + Cities.Text + "' AND Rooms BETWEEN '" + MinRooms.Text + "' AND '" + MaxRooms.Text + "'", 
       ConfigurationManager.AppSettings["ConnectionString"], 
       "Houses" 
       ); 

      Application.Lock(); 
      Application["SearchResultsTable"] = findHouses.GetTable(); 
      Application.UnLock(); 

     } 

     protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) 
     { 
      SearchResults.PageIndex = e.NewPageIndex; 
      BindHousesToGrid(); 
     } 

     private void BindHousesToGrid() 
     { 
      SearchResults.DataSource = (DataTable)Application["SearchResultsTable"]; 
      SearchResults.DataBind(); 
     } 

    } 
} 

形式:

<div> 
    <asp:GridView ID="SearchResults" runat="server" CellPadding="4" GridLines="None" AutoGenerateColumns="False" ForeColor="#333333" AllowPaging="True"> 
     <AlternatingRowStyle BackColor="White"></AlternatingRowStyle> 
     <Columns> 
      <asp:BoundField DataField="Id" HeaderText="מספר נכס" /> 
      <asp:BoundField DataField="City" HeaderText="עיר" /> 
      <asp:BoundField DataField="Street" HeaderText="רחוב" /> 
      <asp:BoundField DataField="Rooms" HeaderText="חדרים" /> 
      <asp:BoundField DataField="size" HeaderText="גודל" /> 
      <asp:BoundField DataField="price" HeaderText="מחיר" /> 
     </Columns> 
     <FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White"></FooterStyle> 

     <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White"></HeaderStyle> 

     <PagerStyle HorizontalAlign="Center" BackColor="#FFCC66" ForeColor="#333333"></PagerStyle> 

     <RowStyle BackColor="#FFFBD6" ForeColor="#333333"></RowStyle> 

     <SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy"></SelectedRowStyle> 

     <SortedAscendingCellStyle BackColor="#FDF5AC"></SortedAscendingCellStyle> 

     <SortedAscendingHeaderStyle BackColor="#4D0000"></SortedAscendingHeaderStyle> 

     <SortedDescendingCellStyle BackColor="#FCF6C0"></SortedDescendingCellStyle> 

     <SortedDescendingHeaderStyle BackColor="#820000"></SortedDescendingHeaderStyle> 
    </asp:GridView> 
</div> 

我的窗體上的按鈕還沒有做任何事情,但首先我希望gridview顯示初始值,意味着整個數據庫表.. 我做錯了什麼?

回答

2

網格沒有綁定到任何數據源。 添加到Page_Load中:

BindHousesToGrid(); 

我還使用此代碼if(!IsPostBack) { }塊,這樣你就不會檢索每一個回發相同的數據。

+0

完成,仍然沒有顯示.. :( –

+0

更新您的源代碼,請 – nativehr

+0

感謝您的回答,它定了! 現在我和我的sql查詢不同的問題單擊按鈕時...將打開一個新的線程 –