2015-11-24 24 views
-1

我想顯示GridView標題中一週的7天,所以我的代碼在下面的工作,但希望顯示基於下拉選擇一週的7天。我有下拉有:顯示Gridview標題中的一週中的7天

WeekStart  WeekEnd 
2015-11-15 2015-11-21 
2015-11-22 2015-11-28 

等..因此,如果降的選擇下來就是2015年11月15日,然後我的gridview的頭應該從2015年11月15日至2015-11開始displayig -21。再次,如果下拉列表中的selectoin是2015-11-22,那麼gridview標題應該從所選日期開始顯示:2015-11-22等等..我的代碼當前開始顯示今天的日期,但我想開始根據下拉選項顯示標題

<asp:DropDownList ID="ddlSelectWeek" runat="server" OnSelectedIndexChanged="ddlSelectWeek_SelectedIndexChanged" Width="200px"> 
       <asp:ListItem Text="2015-11-15" Value="2015-11-15"></asp:ListItem> 
       <asp:ListItem Text="2015-11-22" Value="015-11-22"></asp:ListItem> 
       <asp:ListItem Text="2015-11-29" Value="2015-11-29"></asp:ListItem> 
      </asp:DropDownList> 


protected void ddlSelectWeek_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     BindGridview(); 
    } 


protected void BindGridview() 
    { 
     if (!this.IsPostBack) 
     { 
     DataTable dt = new DataTable(); 
     dt.Columns.AddRange(new DataColumn[8] { 
     new DataColumn("Category"), 
     new DataColumn("Day1"), 
     new DataColumn("Day2"), 
     new DataColumn("Day3"), 
     new DataColumn("Day4"), 
     new DataColumn("Day5"), 
     new DataColumn("Day6"), 
     new DataColumn("Day7"), 
    }); 
     //add your category 
     dt.Rows.Add("Travelling"); 
     dt.Rows.Add("Food"); 
     dt.Rows.Add("Air Fare,"); 
     dt.Rows.Add("Auto Rental"); 

     gvCategory.DataSource = dt; 
     gvCategory.DataBind(); 
     //for generating datewise coloumn 
     for (int i = 1; i < gvCategory.HeaderRow.Cells.Count; i++) 
     { 
      gvCategory.HeaderRow.Cells[i].Text = DateTime.Now.AddDays(i - 1).ToString("ddd") + " " + DateTime.Now.AddDays(i - 1).ToShortDateString(); 
     } 
     } 
    } 
+1

回發的下拉列表改變事件,並使用所選擇的日期重建GridView的。 –

+0

約翰,我已根據您的建議更新了代碼.. – moe

+0

您幾乎擁有它。只需將選定的下拉值作爲參數傳遞給BindGridview函數,然後使用該值代替DateTime.Now。同時刪除if(!this.IsPostBack)檢查。 –

回答

1

試試看。

protected void ddlSelectWeek_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    DateTime theDate; 
    DateTime.TryParseExact(this.ddlSelectWeek.SelectedValue, "yyyy-MM-dd", CultureInfo.InvarientCulture, DateTimeStyles.None, out theDate); 
    BindGridview(theDate); 
} 

protected void BindGridview(DateTime theDate) 
{ 
    DataTable dt = new DataTable(); 
    dt.Columns.AddRange(new DataColumn[8] { 
    new DataColumn("Category"), 
    new DataColumn("Day1"), 
    new DataColumn("Day2"), 
    new DataColumn("Day3"), 
    new DataColumn("Day4"), 
    new DataColumn("Day5"), 
    new DataColumn("Day6"), 
    new DataColumn("Day7") 
    }); 

    //add your category 
    dt.Rows.Add("Travelling"); 
    dt.Rows.Add("Food"); 
    dt.Rows.Add("Air Fare,"); 
    dt.Rows.Add("Auto Rental"); 

    gvCategory.DataSource = dt; 
    gvCategory.DataBind(); 
    //for generating datewise coloumn 
    for (int i = 1; i < gvCategory.HeaderRow.Cells.Count; i++) 
    { 
     gvCategory.HeaderRow.Cells[i].Text = theDate.AddDays(i - 1).ToString("ddd") + " " + theDate.AddDays(i - 1).ToShortDateString(); 
    } 
} 
+0

謝謝約翰,當我選擇當前周:2015-11-22我在標題中得到這樣的事情:Mon 1/1/000 Tue 1/2/0001 Wed 1/3/0001等..但其他星期的數據是好的 – moe

+0

對不起,一切正常,這只是從我的錯字。再次感謝 – moe

+0

Np很高興我能幫上忙。 –

相關問題