我在使用对象数据源的页面上有一个ListView。我希望能够在页面中添加搜索框,并仅显示与搜索查询匹配的结果。有没有人有一个很好的参考?我正在使用C#。
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
CodeFile="system.aspx.cs" Inherits="system" %>
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="Server">
<asp:Label ID="LabelSearch" runat="server" Text="Search: " />
<asp:TextBox ID="TextSearchBox" runat="server" />
<asp:ImageButton ID="ButtonSearchBox" runat="server" ImageUrl="~/Styles/Images/Find.png"
OnClick="ButtonSearchBox_Click" />
<asp:Label ID="LabelSystemCount" runat="server" />
<asp:ListView ID="SystemList" runat="server" DataSourceID="SystemSource" DataKeyNames="SystemID">
<ItemTemplate>
<tr id="row" runat="server" class='<%# Container.DataItemIndex % 2 == 0 ? "row" : "altrow" %>'>
<td>
<%# Eval("Name") %>
</td>
<td>
<%# Eval("Acronym") %>
</td>
<td>
<%# Eval("Description") %>
</td>
<td>
<asp:ImageButton ID="ButtonEdit" runat="server" ImageUrl="~/Styles/Images/Edit.png"
ToolTip="Edit" OnClick="ButtonEdit_Click" />
<asp:ImageButton ID="ButtonDelete" runat="server" ImageUrl="~/Styles/Images/Delete-Red-Cross.png"
ToolTip="Delete" CommandName="Delete" />
</td>
</tr>
</ItemTemplate>
<LayoutTemplate>
<table class="system">
<tr>
<th>
<asp:LinkButton runat="server" Text="System Name" />
</th>
<th>
<asp:LinkButton runat="server" Text="Acronym" />
</th>
<th>
<asp:LinkButton runat="server" Text="Description" />
</th>
<th>
<asp:Label runat="server" Text="" />
</th>
</tr>
<tr id="itemPlaceholder" runat="server" />
</table>
</LayoutTemplate>
</asp:ListView>
<asp:DataPager ID="SystemPager" runat="server" PageSize="10" PagedControlID="SystemList">
<Fields>
<asp:NumericPagerField />
</Fields>
</asp:DataPager>
<asp:ObjectDataSource ID="SystemSource" runat="server" DataObjectTypeName="cipfinModel.System"
DeleteMethod="Delete" SelectMethod="GetSystems" SelectCountMethod="SystemCount"
TypeName="SystemDAO" InsertMethod="Insert" UpdateMethod="Update" EnablePaging="true" />
</asp:Content>
答案 0 :(得分:1)
将GetSystems方法更改为
GetSystems(String filterword)
并将输入文本框的文本提供给ObjectdataSource Select方法的参数。
<强>步骤强>:
1)在商务舱中更改您的方法
2)重建项目和所有必要的图书馆
3)转到设计器并让它刷新ObjectDataSource的Select方法。选择参数源无,并将Defaultvalue留空
4)打开ButtonClick的EventHandler。 (适应你的实际编码:)
this.SystemSource.SelectParameters["PARAMETERNAME"].DefaultValue = TextSearchBox.Text;
this.SystemSource.Databind();
this.SystemList.DataBind();