我有一個包含編輯,刪除和添加的ListView。這裏的一切都很好,但是List太大了,我想用文本框和按鈕給用戶一個serach功能。Asp.net實現ListView控件的搜索功能
當用戶單擊搜索按鈕時,List視圖按搜索條件進行過濾。
有人可以幫助我實現這個請。 謝謝
我有一個包含編輯,刪除和添加的ListView。這裏的一切都很好,但是List太大了,我想用文本框和按鈕給用戶一個serach功能。Asp.net實現ListView控件的搜索功能
當用戶單擊搜索按鈕時,List視圖按搜索條件進行過濾。
有人可以幫助我實現這個請。 謝謝
那麼,你必須知道你的基礎結構;說你是渲染表,你需要通過每行編寫JavaScript中循環,並做一些事情,如:
$("#table").find("tbody > tr").each(function() {
var row = this;
//loop through the cells, do the string match
var tds = $(this).find("td");
//match the inner HTML of the td to the search criteria, depending on how
//your search critiera is setup
//if not found
$(this).css("display", "none"); //hide the row
});
謝謝,但我正在尋找開箱ASP.NET ListView Control Serch功能(如果有的話) – 2011-05-24 12:37:05
有沒有開箱即用的功能。你必須做這項工作。 – 2011-05-24 13:29:29
(在回答有關問題的意見......)
上取決於很多你的DOM結構。您需要知道ListView
如何佈置其元素。例如,如果它們都是div
元素,那麼您需要知道您的JavaScript代碼。 (我要去承擔使用jQuery的,因爲它是一個安全的假設,這些天。)
從本質上講,你的過濾器都將有至少一個文本輸入元素:
<input type="text" id="searchFilter" />
你也可以有一個按鈕進入過濾器,但爲了簡便起見我們只濾波器作爲用戶類型:
$(document).ready(function() {
$('#searchFilter').keyup(function() {
// Here you would do your filtering.
});
});
對於過濾本身,你可以使用:contains()
選擇。查看關於它的信息here。基本上,你會隱藏所有的元素,然後顯示匹配的元素。像這樣(未經):
$('#parentDiv div').hide();
$('#parentDiv div:contains(' + $('#searchFilter').val() + ')').show();
的想法是隱藏所有孩子的div(您的選擇可能需要更加具體,這取決於你的DOM),然後顯示匹配過濾器的人。當然,不要忘記,如果過濾器文本爲空,則有一個默認情況下顯示全部。
這取決於你如何使你的ListView的,但如果你渲染一張桌子和想做的事,你可以使用一個jQuery插件,如UI Table Filter
我正在尋找開箱即用的ASP.NET ListView Control Serch功能。 – 2011-05-24 12:20:28
過濾客戶端最終使用這樣的:
protected void btnSearch_Click(object sender, EventArgs e)
{
DS.SelectCommand =
"SELECT ReportName, ReportType,
FROM Table
WHERE ReportName LIKE @param
ORDER BY ReportType Desc";
DS.SelectParameters.Add("Param", searchTxtBox.Text.Replace("'", "''"));
DS.DataBind();
ListView1.DataBind();
}
你想過濾客戶端還是服務器端?前者將是一個更流暢的UX,後者可能更容易。 – David 2011-05-24 11:42:42
客戶端請。 – 2011-05-24 12:03:30