在ASP.NET中,可以使用ListView控件来展示和筛选数据。以下是一个简单的示例,展示了如何使用ListView控件进行数据筛选:
<asp:ListView ID="ListView1" runat="server" DataSourceID="DataSource1" AllowPaging="True" AllowSorting="True">
<Columns>
<asp:BoundField DataField="Name" HeaderText="Name" SortParameterName="sortExpression" />
<asp:BoundField DataField="Age" HeaderText="Age" SortParameterName="sortExpression" />
</Columns>
</asp:ListView>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataTable dt = new DataTable();
dt.Columns.Add("Name");
dt.Columns.Add("Age");
// 添加数据到DataTable
dt.Rows.Add("Alice", 30);
dt.Rows.Add("Bob", 25);
dt.Rows.Add("Charlie", 35);
// 绑定数据源到ListView
ListView1.DataSource = dt;
ListView1.DataBind();
}
}
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="筛选" OnClick="Button1_Click" />
protected void Button1_Click(object sender, EventArgs e)
{
string filter = TextBox1.Text;
// 创建一个新的DataTable用于存储筛选后的数据
DataTable filteredDt = new DataTable();
filteredDt.Columns.Add("Name");
filteredDt.Columns.Add("Age");
// 遍历原始数据表,根据筛选条件筛选数据
foreach (DataRow row in DataSource1.Select($"Name LIKE '%{filter}%' OR Age LIKE '%{filter}%'"))
{
filteredDt.Rows.Add(row["Name"], row["Age"]);
}
// 绑定筛选后的数据到ListView
ListView1.DataSource = filteredDt;
ListView1.DataBind();
}
现在,当用户在筛选框中输入内容并点击筛选按钮时,ListView控件将显示符合筛选条件的数据。