是的,ASP.NET ListView 控件可以進行條件篩選。您可以使用 FindControl 方法結合自定義的篩選邏輯來查找和顯示符合條件的數據。以下是一個簡單的示例,展示了如何在 ListView 中實現條件篩選:
<asp:ListView ID="ListView1" runat="server" DataSourceID="SqlDataSource1">
<Columns>
<asp:BoundField DataField="ID" HeaderText="ID" />
<asp:BoundField DataField="Name" HeaderText="Name" />
</Columns>
</asp:ListView>
<asp:Button ID="btnFilter" runat="server" Text="篩選" OnClick="btnFilter_Click" />
protected void btnFilter_Click(object sender, EventArgs e)
{
// 獲取篩選條件
string filterValue = txtFilter.Text;
// 使用FindControl方法查找ListView中的數據項
foreach (ListViewItem item in ListView1.Items)
{
// 假設我們要篩選的是Name字段
if (item.FindControl("lblName") is Label nameLabel)
{
// 檢查篩選條件是否匹配
if (nameLabel.Text.Contains(filterValue))
{
// 如果匹配,設置item的Visible屬性為true
item.Visible = true;
}
else
{
// 如果不匹配,設置item的Visible屬性為false
item.Visible = false;
}
}
}
}
在這個示例中,我們首先獲取用戶輸入的篩選條件,然后遍歷ListView中的所有數據項,檢查每個數據項的Name字段是否包含篩選條件。如果包含,則將該數據項設置為可見;否則,將其設置為不可見。這樣,ListView中就只會顯示符合條件的數據項。