在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控件将显示符合筛选条件的数据。