2012-01-09 50 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