我有 2 个下拉列表和一个列表视图:
<option value="Please choose...">Please choose...</option>
<option value="Permanent">Permanent</option>
<option value="Part Time">Part Time</option>
<option value="Volunteer">Volunteer</option>
<option value="Temporary">Temporary</option>
<option value="Please choose...">Please choose...</option>
<option value="South West">South West</option>
<option value="South East">South East</option>
<option value="London">London</option>
<option value="East of England">East of England</option>
<option value="West Midlands">West Midlands</option>
<option value="East Midlands">East Midlands</option>
<option value="North West">North West</option>
<option value="North East">North East</option>
<option value="Yorkshire & Humberside">Yorkshire & Humberside</option>
<option value="UK">UK</option>
<option value="Midlands">Midlands</option>
我想用这两个下拉值过滤一个项目列表。如果选择了索引 0(请选择),这应该返回该属性的所有内容。
这是我的代码,但是当您从第二个下拉列表中选择某些内容时,结果不正确。
protected void LoadCareerList(string jobType = "", string jobLocation = "")
{
var currentNode = Node.GetCurrent();
var nodeList = new List<Node>();
lblVacancyCount.Text = "Current vacancies: 0";
foreach (Node node in currentNode.Children)
{
nodeList.Add(node);
}
if (nodeList.Count > 0)
{
List<Node> filteredList = nodeList.Where(
x => ((ddlFilterType.SelectedIndex == 0 || x.GetProperty("jobType").Value.Replace(" ", "").ToLower().Contains(jobType.Replace(" ", "").ToLower()))) && ((ddlFilterLocation.SelectedIndex == 0 || x.GetProperty("jobLocation").Value.Replace(" ", "").ToLower().Contains(jobLocation.Replace(" ", "").ToLower())))).OrderByDescending(x => x.GetProperty("jobDatePosted").Value).ToList();
lvCareers.DataSource = filteredList;
lvCareers.DataBind();
lblVacancyCount.Text = "Current vacancies: " + filteredList.Count.ToString(CultureInfo.InvariantCulture);
}
}
到目前为止,我在系统中有 3 条记录:Career 1 = Midlands & Permanent Career 2 = London & Permanent Career 3 = Midlands & Temporary 当我选择 Permanent 我得到 2 条记录,在第二个过滤器中选择 London 会返回 0 条记录。