2012-01-09 48 views
2

增加值我有以下手工代碼打開網址:HTML選擇列表用C#

<select type="text" name="sel_veh" id="Select1" runat="server" onchange="window.open('http://appsrv01.shakarganj.com.pk:7778/reports/rwservlet?reptest&report=eth_fleet_dtl&veh_num='+ sel_veh.value,'mywindow4');" language="javascript" onclick="return sel_veh_onclick()" style="font-size: 10pt"> 
    <option value="">Please Select</option> 
    <option value="01-01-12">01-Jan</option> 
    <option value="01-02-12">02-Jan</option> 
    <option value="01-02-12">03-Jan</option> 
    <option value="01-02-12">04-Jan</option> 
</select> 

我有這個select列表通過硬編碼的日期值。問題是,當日期發生變化時,我必須用新日期更新代碼。有什麼辦法在C#中,我可以通過動態c3代碼添加值到這個select列表,日期值應該自動更改系統日期?

回答

3

是的,你可以。如果你正在尋找到更多的編碼器友好的控制,如果您使用的是<select />使用DropDownList控制

,您可以通過例如

Select1.Items.Add("01-01-12","01-Jan"); 

添加項目

,如果你」重新使用DropDownList,您可以通過

dropDownList1.Items.Add(new ListItem("01-Jan", "01-01-12")); 
+0

但它會再次固定Value.I想用循環,prvious 7個日期應繼續留在名單 – 2012-01-09 12:10:19

+0

你可以改變它來添加你可以使用DateTime類來生成日期,獲取當前日期等 – Shai 2012-01-09 12:17:20

+0

如何使用dateadd attriubte來選擇列表像這樣在dropdownlist DD2.Items.Add(New ListItem(Format(DateAdd(DateIntervalDay ,-1,現在),「dd-MMM」),格式(DateAdd(DateInterval.Day,-1,Now),「dd-MMM-yyyy」))) – 2012-01-14 07:54:52

0

首先添加項目,如夏嘉曦說,正確使用DropDownList控件來代替:

<asp:DropDownList ID="ddlDates" runat="server"></asp:DropDownList> 

現在從代碼這樣的代碼填充它背後:

DateTime now = DateTime.Now; 
DateTime past = now.AddDays(-7); 
List<DateTime> dates = new List<DateTime>(); 
for (DateTime curDate = past; curDate <= now; curDate = curDate.AddDays(1)) 
    dates.Add(curDate); 
ddlDates.Attributes["onchange"] = "window.open('http://appsrv01.shakarganj.com.pk:7778/reports/rwservlet?reptest&report=eth_fleet_dtl&veh_num='+ this.value, 'mywindow4');"; 
ddlDates.Attributes["onclick"] = "return sel_veh_onclick();"; 
ddlDates.Items.Clear(); 
ddlDates.Items.Add(new ListItem("Please Select", "")); 
ddlDates.Items.AddRange(dates.ConvertAll(dt => new ListItem(dt.ToString("dd-MMM"), dt.ToString("MM-dd-yy"))).ToArray()); 
+0

Shadow Wizard我可以按Desc順序對日期進行排序 – 2012-01-14 09:19:14

+0

@Adeel是隻是有相反的順序循環:'for(DateTime curDate = now; curDate> past; curDate = curDate.AddDays(-1))' – 2012-01-15 07:25:52