Hi all,
I'm fetching distinct months the month values are in the form of month. ie, Jan, Feb, Mar, etc.
How do I get it in descending order of number month?
Right now I'm getting result as: Jan, Dec.
But I want the result like this: Dec, Jan
The link
https://www.aspsnippets.com/questions/122079/Display-Last-three-Months-name-and-hide-others-in-ASPNet-DropDownList-using-C-and-VBNet/answers
My code below
<asp:DropDownList ID="ddlMonths" runat="server">
<asp:ListItem Text="Select" Value=""></asp:ListItem>
<asp:ListItem Text="Jan" Value="1"></asp:ListItem>
<asp:ListItem Text="Feb" Value="2"></asp:ListItem>
<asp:ListItem Text="Mar" Value="3"></asp:ListItem>
<asp:ListItem Text="Apr" Value="4"></asp:ListItem>
<asp:ListItem Text="May" Value="5"></asp:ListItem>
<asp:ListItem Text="Jun" Value="6"></asp:ListItem>
<asp:ListItem Text="Jul" Value="7"></asp:ListItem>
<asp:ListItem Text="Aug" Value="8"></asp:ListItem>
<asp:ListItem Text="Sep" Value="9"></asp:ListItem>
<asp:ListItem Text="Oct" Value="10"></asp:ListItem>
<asp:ListItem Text="Nov" Value="11"></asp:ListItem>
<asp:ListItem Text="Dec" Value="12"></asp:ListItem>
</asp:DropDownList>
protected void Page_Load(object sender, EventArgs e)
{
DateTime dateTime = DateTime.Now;
// List of Months to be display.
List<ListItem> months = new List<ListItem>();
for (int i = 1; i <= 2; i++)
{
months.Add(ddlMonths.Items.Cast<ListItem>()
.Where(x => x.Value.Equals(dateTime.AddMonths(-i).Month.ToString()))
.FirstOrDefault());
}
for (int i = ddlMonths.Items.Count; i > 1; i--)
{
if (!months.Contains(ddlMonths.Items[i - 1]))
{
// Remove items from DropDownList.
ddlMonths.Items.Remove(ddlMonths.Items[i - 1]);
}
}
}