나는 ASP.Net 웹 응용 프로그램을 작성 중입니다. 내가 listview, 그것의 데이터 소스 LinqDataSource 있습니다. 내 데이터베이스에는 스태프 테이블이 있으며 드롭 다운 목록을 사용하여 해당 팀의 레코드 필터를 사용하려고합니다. 드롭 다운 목록에서 "모두"를 선택할 때까지 제대로 작동합니다. teamID가 null 인 직원을 제외한 모든 직원을 리턴합니다. teamID가 null 인 레코드는 어떻게 반환 할 수 있습니까?LinqDataSource - null 값 필터링
Private Sub ldsStaff_Selecting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.LinqDataSourceSelectEventArgs) Handles ldsStaff.Selecting
Dim ddl As DropDownList = CType(ListView1.FindControlRecursive("ddlTeamFilter"), DropDownList)
If ddl.SelectedValue = "" Then
e.WhereParameters.Remove("TeamID")
End If
나는 내가 whereparameter를 제거하면 드롭 다운리스트가 "모든"이 때 생각 : 나는 LinqDataSource 선택 이벤트를 처리 뒤에 내 코드에서
<asp:ListView ID="ListView1" runat="server" DataSourceID="ldsStaff" DataKeyNames="staffID">
<LayoutTemplate>
<table>
<tr>
<th>Name</th>
<th>Team</th>
</tr>
<tr>
<td> </td>
<td><asp:DropDownList ID="ddlTeamFilter" runat="server" DataSourceID="ldsTeams" DataTextField="Team" DataValueField="TeamID" AppendDataBoundItems="true" AutoPostBack="true">
<asp:ListItem Text="[All]" Value=""></asp:ListItem>
</asp:DropDownList>
</td>
</tr>
<tr ID="itemPlaceHolder" runat="server"></tr>
</table>
</LayoutTemplate>
....
</asp:Listview>
<asp:LinqDataSource ID="ldsStaff" runat="server"
ContextTypeName="ProjectDatabase.ProjectDatabaseUsersDataContext" OrderBy="name"
TableName="Staffs" EnableUpdate="True" Where="inService == @inService && TeamID == @TeamID">
<WhereParameters>
<asp:Parameter DefaultValue="true" Name="inService" Type="Boolean" />
<asp:ControlParameter ControlID="ctl00$ContentPlaceHolder1$ListView1$ddlTeamFilter" Name="TeamID" Type="Int32" PropertyName="SelectedValue"/>
</WhereParameters>
</asp:LinqDataSource>
:
이
내 코드입니다 모든 레코드를 반환하도록 강요하지만 작동하지 않습니다.도와주세요!
덕분에, 엠마