- - PR -
カレンダーコントロールの表示制御について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2007-08-09 13:37
教えて下さい。
SQLテーブルより日付/タイトルを取得し、カレンダーセルにリンク(タイトルを表示)を埋め込んでいます。 又、カレンダーセルに埋め込んだリンクをクリックすることで、明細データを同一ページに表示させたいと思っています。 この時、前月を表示し、前月内のリンクをクリックするとカレンダー表示が当月に戻ってしまいます。前月表示のままにしたいのですがどのように指定すればいいのでしょうか。例えば今が8月の場合、e.Day.Dateの中身を見てみると"#7/29/2007#"となっています。e.Day.DateはReadOnlyの為、書き換えができません。 以下コード ↓ Protected Sub Calendar1_DayRender(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DayRenderEventArgs) If e.Day.IsOtherMonth = True Then e.Cell.Text = String.Empty Else SqlDataSource1.SelectParameters.Clear() SqlDataSource1.SelectParameters.Add("sdate", e.Day.Date.ToString("yyyy/MM/dd")) Dim reader As IDataReader = SqlDataSource1.Select(DataSourceSelectArguments.Empty) Do While reader.Read() Dim ltrCr As New LiteralControl("<br />") Dim link As New HyperLink() link.NavigateUrl = "Calendar.aspx?sdate=" & reader.GetDateTime(0) link.Text = "■" & reader.GetString(1) e.Cell.Controls.Add(ltrCr) e.Cell.Controls.Add(link) Loop End If End Sub 宜しくお願いします。 |
|
投稿日時: 2007-08-09 17:24
ページロードでカレンダーコントロールの
SelectedDateプロパティとVisibleDateプロパティを 取得した日付に設定してやればよいのでは? |
|
投稿日時: 2007-08-09 18:02
しょくばんさん
レスありがとうございます。 SelectionChangedイベントでSelectedDateの値をSessionに保存しておき、ページロード時にSelectedDateプロパティとVisibleDateプロパティに先ほど保存したSessionの値を入れるということですね。やってみます。 ありがとうございました。今後も宜しくお願いします。 |
|
投稿日時: 2007-08-10 10:07
ん?でもPOPOさんは
>link.NavigateUrl = "Calendar.aspx?sdate=" & reader.GetDateTime(0) としているので、セッションを使わなくても、ページロード時に Request.QueryString["sdate"] で日付を取得できるのでは? |
|
投稿日時: 2007-08-13 11:19
しょくばんさん。
遅くなってすいません。 そうですね。単純にRequest.QueryString["sdate"]から日付をとればよかったんだと、投稿してから思いました。 どうもお手数おかけ致しました。 |
1