У меня возникли проблемы с поиском наилучшего способа фильтрации запроса Entity Framework с результатами выбранного значения DropDownList для заполнения элемента управления ListView.Как вы отфильтровываете ASP.NET Entity Framework Bound ListView с помощью DropDownList?
Мой код выглядит следующим образом:
Public Function ListViewProducts_GetData() As IQueryable
Dim strVendorName As String = ddlFilterVendor.SelectedValue
Dim myEntities As New InventoryProductsEntities()
Return (From product In myEntities.InventoryProducts
Order By product.ID Ascending
Where product.VendorID = strVendorName
Select product).Take(ddlDisplayRecords.SelectedValue)
End Function
Это довольно грубый прямо сейчас, но я хотел бы быть в состоянии отфильтровать данные по производителям, а затем страницу, но я не могу получить ListView к отображать обновленные запрошенные данные. Он просто продолжает отображать те же данные, что и раньше, даже с изменением ddlFilterVendor.SelectedValue.
Раскрывающийся список кода выглядит следующим образом:
<asp:DropDownList ID="ddlFilterVendor" runat="server" AutoPostBack="True" DataSourceID="SqlDataSourceVendor" DataTextField="VendorID" DataValueField="VendorID" AppendDataBoundItems="True">
<asp:ListItem Selected="True">All</asp:ListItem>
</asp:DropDownList>
Я застрял в этот момент .... Я думал о том, отправляя ddlFilterVendor.SelectedValue к QueryString и перезагрузки страницы, но я бы представьте, что должен быть более простой способ сделать это. Любая помощь или идеи были бы высоко оценены! Благодаря!
SqlDataSource код выглядит следующим образом:
<asp:SqlDataSource ID="SqlDataSourceVendor" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString1 %>" SelectCommand="SELECT DISTINCT [VendorID] FROM [InventoryProducts]"></asp:SqlDataSource>
Вы используете SqlDataSource с раскрывающимся списком. Можете ли вы опубликовать определение этого? – Andrei
Почему вы не используете [EntityDataSource] (http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.entitydatasource%28v=vs.110%29.aspx)? – OneFineDay
@Andrei - Я добавил код SqlDataSource. Фильтр будет работать при загрузке страницы, но выбор другого элемента из DropDownList вызовет обратную связь, запустит функцию ListViewProducts_GetData(), но не изменит элементы в ListView, которые были показаны при первой загрузке страницы. – J2Tuner