Поиск / фильтрация ASP ListView с использованием LINQ - PullRequest
0 голосов
/ 20 августа 2010

У меня есть 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" />&nbsp;
    <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>

1 Ответ

1 голос
/ 20 августа 2010

Измените метод GetSystems на

GetSystems(String filterword)

и введите текст, введенный в текстовое поле, для параметра вашего метода ObjectdataSource Select.

Шаги :
1) Измените ваш метод в бизнес-классе.
2) Перестройте проект и все необходимые библиотеки
3) Перейдите к конструктору и дайте ему обновить метод Select вашего ObjectDataSource.Выберите в качестве параметра «Нет параметров» и оставьте значение по умолчанию пустым.
4) Откройте EventHandler для ButtonClick.(Адаптируйтесь к вашему фактическому кодированию :)

this.SystemSource.SelectParameters["PARAMETERNAME"].DefaultValue = TextSearchBox.Text;
this.SystemSource.Databind();
this.SystemList.DataBind();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...