С помощью - PullRequest
       9

С помощью

0 голосов
/ 03 августа 2010

Я использую элемент управления EntityDataSource для отображения данных в сетке, я хочу использовать тот же EntityDataSource для отображения всех данных, а также для поиска, проблема в том, что я могу сделать только одну вещь, которая может использовать его для поиска или полученияцелые данные

вот моя страница .aspx

<asp:EntityDataSource ID="InvestorsSource" runat="server" 
    ConnectionString="name=Entities" 
    DefaultContainerName="Entities" EnableFlattening="False" 
    EntitySetName="Investors" EntityTypeFilter="Investor"  

    Select="it.[InvestorId], it.[InvestorName], it.[Summary], it.[Logo], it.[EmailAddress], it.[PhoneNumber], it.[Website]" 
    AutoGenerateWhereClause="True" OrderBy="it.[InvestorName]">
    <WhereParameters>
        <asp:FormParameter FormField="txtSearchInvestor" Name="investorName" Type="String" />
    </WhereParameters>
</asp:EntityDataSource>
<asp:TextBox ID="txtSearchInvestor" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Go" onclick="Button1_Click" />
<p>
    <asp:GridView ID="gvInvestors" runat="server" AllowPaging="True" 
        AllowSorting="True" AutoGenerateColumns="False" 
        DataSourceID="InvestorsSource">
        <Columns>
            <asp:BoundField DataField="InvestorId" HeaderText="InvestorId" ReadOnly="True" 
                SortExpression="InvestorId" />
            <asp:BoundField DataField="InvestorName" HeaderText="InvestorName" 
                SortExpression="InvestorName" ReadOnly="True" />
            <asp:BoundField DataField="Summary" HeaderText="Summary" 
                SortExpression="Summary" ReadOnly="True" />
            <asp:BoundField DataField="EmailAddress" HeaderText="EmailAddress" 
                SortExpression="EmailAddress" ReadOnly="True" />
            <asp:BoundField DataField="PhoneNumber" HeaderText="PhoneNumber" 
                SortExpression="PhoneNumber" ReadOnly="True" />
            <asp:BoundField DataField="Website" HeaderText="Website" 
                SortExpression="Website" ReadOnly="True" />
        </Columns>
    </asp:GridView>
</p>

Спасибо

1 Ответ

0 голосов
/ 03 августа 2010

Я настраивал страницу, используя базу данных Northwind и таблицу «Сотрудники». Существует элемент управления TextBox и Button, как и ваш код для фильтрации данных. Когда TextBox пуст, отображаются все записи. Когда EmployeeID вводится в TextBox и нажимается кнопка «Фильтр», отображается только сотрудник с EmployeeID (если он присутствует в данных). Я думаю, что такое поведение, о котором вы просите. Вот разметка:

<form id="form1" runat="server">
<div>

    <asp:EntityDataSource ID="EntityDataSource1" runat="server" 
        ConnectionString="name=NWEntities" DefaultContainerName="NWEntities" 
        EntitySetName="EmployeeSet" EntityTypeFilter="Employee" AutoGenerateWhereClause="true"
        Select="it.[EmployeeID], it.[LastName], it.[FirstName], it.[Title], it.[TitleOfCourtesy], it.[BirthDate]">
        <WhereParameters>
            <asp:FormParameter FormField="txtFilter" Name="EmployeeID" Type="Int32" />
        </WhereParameters>
    </asp:EntityDataSource>
    <asp:TextBox ID="txtFilter" runat="server" />
    <asp:Button runat="server" Text="Filter" />
    <asp:GridView ID="gvEmployees" runat="server" DataSourceID="EntityDataSource1" AutoGenerateColumns="true" />
</div>
</form>

Редактировать: Был поднят вопрос о том, как часть значения может быть введена в текстовое поле фильтра, чтобы получить все значения, которые начинаются с введенного значения. Вы можете использовать оператор LIKE SQL, и пользователям нужно будет сказать, что символ «%» является подстановочным знаком. Я изменил фильтр на поле FirstName. Вот изменения в приведенном выше коде:

В теге EntityDataSource:

AutoGenerateWhereClause="false"

Where="it.[FirstName] LIKE @FirstName"

В теге WhereParameters:

<asp:FormParameter FormField="txtFilter" Name="FirstName" Type="String" DefaultValue="%" />

Теперь, когда "n%" введено в текстовое поле фильтра, будут отображены все записи со значением FirstName, которое начинается с "n". Теперь можно использовать любое допустимое предложение LIKE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...