我刚刚为用户控件编写了一个用于jQuery UI控件的ASP .NET包装器。它可以像这样使用:
<ui:DatePicker ID="startDate" runat="server" LabelText="Start Date:" />
目前我在Page_Load处理程序中设置了此控件的初始值,如下所示:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
startDate.Value = DateTime.Now.AddMonths(-2);
}
}
但我认为将初始化代码移动到标记会很好。然而,我无法解决的是如何使用内联标记设置此控件的初始值,例如:
<ui:DatePicker ID="startDate" Value='<%= DateTime.Now.AddMonths(-2) %>' runat="server" LabelText="Start Date:" />
我有一个属性:
public DateTime? Value
{
get
{
DateTime result;
if (DateTime.TryParse(dateBox.Text, out result))
{
return result;
}
return null;
}
set
{
dateBox.Text = value != null ? value.Value.ToShortDateString() : "";
}
}
我尝试过不同的内联标签组合,但我总是遇到编译错误。有没有办法用内联标签实现它?
答案 0 :(得分:0)
您需要将实际日期表示放在属性中。原因是Asp.Net控件的某些属性也表现得如下。 TextBox的visible属性不能设置为<asp:TextBox runat="server" Visible='<%= true %>'></asp:TextBox>
<ui:DatePicker ID="startDate" Value='20/10/2012' runat="server" LabelText="Start Date:" />
或者设置Page_Load
的值 protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
startDate.Value = DateTime.Now; //initialize DatePicker
}
}
我找到了这些链接: