好吧所以我确定问题出现在代码背后,有些事情是不对的..
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显示初始值,表示整个db表.. 我做错了什么?
答案 0 :(得分:2)
网格未绑定到任何数据源。 添加到Page_Load:
BindHousesToGrid();
我还会在 if(!IsPostBack) { }
块中使用此代码,以便您不会在每次回发时检索相同的数据。