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>
これらの 2 つのドロップダウン値でアイテムのリストをフィルター処理したいと思います。インデックス 0 が選択されている場合 (選択してください)、そのプロパティのすべてが返されます。
これは私が持っているコードですが、2 番目のドロップダウンから何かを選択すると、結果が正しくありません。
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 つのレコードがあります: キャリア 1 = ミッドランド & パーマネント キャリア 2 = ロンドン & パーマネント キャリア 3 = ミッドランド & テンポラリー パーマネントを選択すると 2 つのレコードが取得され、2 番目のフィルターでロンドンを選択すると 0 レコードが返されます。