是的,ASP.NET 分頁可以進行數據篩選。在 ASP.NET 中,你可以使用 GridView 或 ListView 等控件來實現分頁和篩選功能。以下是一個簡單的示例,展示了如何在 ASP.NET 中使用 GridView 控件進行分頁和篩選:
首先,在你的項目中添加一個數據源(例如,一個 SQL Server 數據庫表)和一個數據綁定控件(例如,GridView)。
在你的代碼后臺(例如,在 Page_Load 事件處理程序中),設置數據源的屬性,以便在分頁和篩選時正確處理數據。例如,你可以設置數據源的分頁大小和當前頁索引:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
// 設置分頁大小
gridView.PageSize = 10;
// 設置當前頁索引
int currentPageIndex = Convert.ToInt32(Request.QueryString["page"]);
gridView.CurrentPageIndex = currentPageIndex;
// 綁定數據
BindData(currentPageIndex);
}
}
private void BindData(int pageIndex)
{
// 創建一個數據源,例如一個 SQL Server 數據表
DataTable dataTable = GetDataFromDataSource(pageIndex);
// 將數據綁定到 GridView 控件
gridView.DataSource = dataTable;
gridView.DataBind();
}
private DataTable GetDataFromDataSource(int pageIndex)
{
// 創建一個 DataTable 對象
DataTable dataTable = new DataTable();
// 連接到數據源(例如,一個 SQL Server 數據庫)
using (SqlConnection connection = new SqlConnection("your_connection_string"))
{
// 創建一個 SQL 查詢,包含篩選條件(如果有)
string query = "SELECT * FROM your_table";
if (!string.IsNullOrEmpty(FilterTextBox.Text))
{
query += " WHERE your_column LIKE @filter";
}
// 創建一個 SqlCommand 對象,用于執行查詢
using (SqlCommand command = new SqlCommand(query, connection))
{
// 添加篩選參數
if (!string.IsNullOrEmpty(FilterTextBox.Text))
{
command.Parameters.AddWithValue("@filter", "%" + FilterTextBox.Text + "%");
}
// 打開連接并執行查詢
connection.Open();
using (SqlDataReader reader = command.ExecuteReader())
{
// 將查詢結果添加到 DataTable 對象
dataTable.Load(reader);
}
}
}
// 計算總頁數(根據需要實現)
int totalPages = CalculateTotalPages(dataTable);
// 設置 DataTable 的分頁信息
dataTable.DefaultView.RowCount = dataTable.Rows.Count;
dataTable.DefaultView.PageIndex = pageIndex;
dataTable.DefaultView.PageSize = gridView.PageSize;
return dataTable;
}
<asp:TextBox ID="FilterTextBox" runat="server" OnTextChanged="FilterTextBox_TextChanged"></asp:TextBox>
protected void Page_Load(object sender, EventArgs e)
{
// ... 其他代碼 ...
// 為搜索框的 TextChanged 事件添加事件處理程序
FilterTextBox.TextChanged += new EventHandler(FilterTextBox_TextChanged);
}
private void FilterTextBox_TextChanged(object sender, EventArgs e)
{
// 重新綁定數據
BindData(gridView.CurrentPageIndex);
}
現在,當用戶在搜索框中輸入篩選條件時,GridView 控件將自動進行分頁和篩選。