ListView 컨트롤을 채우기 위해 DropDownList의 Selected Value 결과를 사용하여 Entity Framework 쿼리를 필터링하는 가장 좋은 방법을 찾는 데 문제가 있습니다. 다음과 같이DropDownList를 통해 ASP.NET Entity Framework Bound ListView를 필터링하는 방법은 무엇입니까?
내 코드는 다음과 같습니다
이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>
.... 내가 QueryString을에 ddlFilterVendor.SelectedValue을 게시하고 페이지를 다시로드에 대해 생각했다, 그러나 나는 것 이것을하기위한 더 쉬운 방법이 있어야한다고 상상해보십시오. 어떤 도움이나 아이디어라도 대단히 감사하겠습니다! 감사! 나는이 문제에 대한 해결책을 발견
<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