Hi,
I have two years of record but look like my drop down is not work out.
Please, can anyone give me idea or advice how to fix my code.
Thanks in advanced.
Here is my code:
<div class="single_field">
<label for="<%= DdlYear.ClientID %>">
Year:
</label>
<asp:DropDownList ID="DdlYear" OnSelectedIndexChanged="DdlYear_OnSelectedIndexChanged"
AutoPostBack="true" runat="server" Width="100px">
</asp:DropDownList>
</div>
</div>
CODE BEHIND
public partial class Custom_Widgets_FrontEnd_LatestUpdate_LatestUpdateListView : System.Web.UI.UserControl
{
protected NacContext DBContext = new NacContext();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
_LoadControlValue();
_LoadLatestUpdateInfo();
}
}
private void _LoadControlValue()
{
using (NacContext DBContext = new NacContext())
{
var latestUpdate = DBContext.nac_Latest_Update;
var year = latestUpdate.OrderBy(a => a.PublishDate).Select(a => ((DateTime)a.PublishDate).Year).Distinct().ToList();
DdlYear.DataSource = year;
DdlYear.DataBind();
}
int curYear = DateTime.Now.Year;
if (DdlYear.Items.FindByValue(curYear.ToString()) != null)
{
DdlYear.Items.FindByValue(curYear.ToString()).Selected = true;
}
}
private void _LoadLatestUpdateInfo()
{
int year = Convert.ToInt32(DdlYear.SelectedValue);
var latestUpdate = DBContext.nac_Latest_Update.Where(a => ((DateTime)a.PublishDate).Year == year);
var temp = latestUpdate.OrderByDescending(b => b.PublishDate);
RListLatestUpdate.DataSource = temp;
RListLatestUpdate.DataBind();
}
protected void DdlYear_OnSelectedIndexChanged(Object sender, EventArgs e)
{
_LoadLatestUpdateInfo();
}
}