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 の 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
     }
  }

これらのリンクを見つけました:

于 2012-10-18T21:21:59.323 に答える