Как отфильтровать сеточное представление с помощью нескольких фильтров на основе entity framework и веб-форм.
Всем Привет,
Я пытаюсь выбрать ASP.NET для проекта, который я делаю.
Я строил свое решение на основе шаблона веб - форм, предоставленного VS 2017.
Мне удается сделать привязку данных с помощью gridview, используя
SelectMethodпредставленный.
Проблема, с которой я сталкиваюсь сейчас, заключается в том, что я пытаюсь фильтровать свои данные на основе более чем одного элемента управления.
Я видел несколько решений для фильтрации одного элемента управления:
ASP.NET 4.5: фильтрация с использованием привязки модели в ASP.NET веб-формы | DotNetCurry
ASP.NET привязка модели веб-форм | Geeky Tidbits
Но они, кажется, указывают только на один элемент управления.
Я уже построил несколько элементов управления, чтобы обеспечить дату для фильтрации дат, и еще один элемент управления для поиска в журналах.
У меня есть ощущение, что в будущем мне понадобится больше ресурсов или, возможно, руководство, поскольку я уже совершенно запутался между веб-формами, СПА и некоторыми технологиями, стоящими за ними, и тем, как они отличаются.
Что я уже пробовал:
transactionhistory в.aspx-файл
<div class="form-group"> <asp:Label runat="server" AssociatedControlID="LikeCategoryName" CssClass="control-label">Category Name: </asp:Label> <asp:TextBox ID="LikeCategoryName" runat="server" CssClass="form-control" /> </div> ... <asp:GridView runat="server" ID="TransactionHistoryGrid" ItemType="transactionhistory" DataKeyNames="Id" SelectMethod="TransactionHistoryGrid_GetData" AllowSorting="true" AllowPaging="true" PageSize="10" AutoGenerateColumns="false" CssClass="table table-striped table-bordered" HeaderStyle-CssClass="thead-dark"> <Columns> <asp:DynamicField DataField="DateTime" DataFormatString="{0:s}" HtmlEncode="false" /> <asp:DynamicField DataField="CategoryName" /> <asp:DynamicField DataField="Log" /> <asp:TemplateField HeaderText="Status" SortExpression="Status"> <ItemTemplate> <asp:Label runat="server" Text='<%# Boolean.Parse(Eval("Status").ToString()) ? "Successful" : "Failed" %>' /> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView>
transactionhistory в.aspx-файл.в CS
public IQueryable<transactionhistory> TransactionHistoryGrid_GetData([Control("LikeCategoryName")] String category) { var query = entities.transactionhistories; if (category.length > 0) { query = query.Where(c => c.CategoryName.Contains(category)); } return query; }