<asp:DetailsView ID="DetailsView1" runat="server" Height="50px" Width="125px" OnDataBound = "OnDataBound" AutoGenerateRows = "false">
<Fields>
<asp:TemplateField HeaderText = "Start Date">
<ItemTemplate>
<asp:Label ID="lblStartDate" runat="server" Text='<%# Eval("StartDate") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText = "End Date">
<ItemTemplate>
<asp:Label ID="lblEndDate" runat="server" Text='<%# Eval("EndDate") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText = "Date Ranges">
<ItemTemplate>
<asp:DropDownList ID="ddlDates" runat="server">
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
</Fields>
</asp:DetailsView>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[2] { new DataColumn("StartDate"), new DataColumn("EndDate") });
dt.Rows.Add(Convert.ToDateTime("01/01/2013"), Convert.ToDateTime("01/04/2013"));
DetailsView1.DataSource = dt;
DetailsView1.DataBind();
}
}
protected void OnDataBound(object sender, EventArgs e)
{
Label lblStartDate = DetailsView1.FindControl("lblStartDate") as Label;
Label lblEndDate = DetailsView1.FindControl("lblEndDate") as Label;
DropDownList ddlDates = DetailsView1.FindControl("ddlDates") as DropDownList;
DateTime startDate = Convert.ToDateTime(lblStartDate.Text);
DateTime endDate = Convert.ToDateTime(lblEndDate.Text);
int difference = endDate.Subtract(startDate).Days;
for (int i = 0; i <= difference; i++)
{
ddlDates.Items.Add(new ListItem(startDate.AddDays(i).ToString(), startDate.AddDays(i).ToString()));
}
}