2
我刚刚为用户控件编写了一个用于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() : "";
}
}
我已经尝试了不同的内联标签组合,并且我总是收到编译错误。有没有一种方法来实现它与内联标签?
编译错误是什么?例如: – codingbiz
:无法通过字符串表示形式'<%DateTime.Now'创建类型为'System.Nullable'1 [[System.DateTime,mscorlib,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089]]'的对象%>'为'Value'属性。 – dragonfly
阅读本文http://stackoverflow.com/questions/370201/why-will-expressions-as-property-values-on-a-server-controls-lead-to-a-co - 花了我时间去了解它太 – codingbiz