3

我刚刚为作为用户控件的 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() : "";
        }
    }

我尝试了不同的内联标签组合,但总是出现编译错误。有没有办法用内联标签来实现它?

4

1 回答 1

2

您需要将实际的日期表示形式放入属性中。原因是 Asp.Net 控件的某些属性也具有类似的行为,例如 TextBox 的可见属性不能设置为<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
     }
  }

我找到了这些链接:

于 2012-10-18T21:21:59.323 回答