您好,我正在设计一个自定义的.net Web控件,它继承自aspx下拉列表。 这个想法是有一个下拉列表,将显示年份值,直到今年。我希望能够设置控件可以启动的“StartYear”属性,或者使用默认日期。我能够创建这个控件,但它总是使用日期。看来我无法在后面的代码中使用aspx代码中的属性设置。我的前端代码是....简单的自定义网页控制
<customControls:YearDropDownList StartYear="2000" ID="ddlYear" runat="server"/>
和后面的代码是
using System;
using System.ComponentModel;
using System.Globalization;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace customControls {
[ToolboxData("<{0}:ServerControl1 runat=server></{0}:ServerControl1>")]
[DefaultProperty("StartYear")]
public class YearDropDownList : DropDownList
{
public YearDropDownList() {
for (int i = Int32.Parse(StartYear); i <= DateTime.Now.Year; i++)
{
this.Items.Add(new ListItem(i.ToString(), i.ToString()));
}
}
public string StartYear {
get{
String s = (String)ViewState["StartYear"];
return ((s == null) ? "2009":s);
}
set{
ViewState["StartYear"] = value;
}
}
}
}
如何从构造有什么不同,然后编写代码构造调用一个函数? – JBone 2013-02-28 18:03:26
@JBone它不是,而是在构造函数和属性中两次编写代码,我将它移入自己的方法中,并从两个位置调用它。为什么在不需要的时候编写代码两次? – DiskJunky 2013-02-28 18:05:57
啊没有看到它在setter,我会尝试这 – JBone 2013-02-28 18:07:25