- PR -

【ASP.NET】マウスカーソルの変更

1
投稿者投稿内容
homes
常連さん
会議室デビュー日: 2002/08/06
投稿数: 38
投稿日時: 2005-12-19 16:02
今回もお世話になります。
カレンダーコントロールを使用して、対象日付をクリックするとDataGridに
データを表示するロジックを作成しています。
クリックした際にマウスカーソルの形を砂時計に変更し、
データが展開されたら元のカーソルに戻すといった動作をさせたいのですが
データ展開後にカーソルが砂時計になってしまいます。
クリックされた直後にカーソルが砂時計になるようにしたいのですが、
実現されている方がいらっしゃればご教授下さい。
よろしくお願い致します。
以下簡単ですがソースです。

Private Sub MyCalendar_SelectionChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyCalendar.SelectionChanged
Page.RegisterClientScriptBlock("clientScript", "<script language=JavaScript> document.body.style.cursor='wait'; </script>")

strDate.Text = Format(MyCalendar.SelectedDate, "yyyy/MM/dd")
BindGrid() 'データ展開処理
End Sub
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2005-12-19 18:52
MyCalendar_SelectionChanged のタイミングでは
全ての処理が終了してから出ないとカーソルは砂時計になりませんよね、

するなら、PostBack の前でやらないと

Page_Load のタイミングでカレンダーの "OnClick" に "document.body.style.cursor='wait'" を追加してあげれば
出来るのではないでしょうか

コード:
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        MyCalendar.Attributes.Add("OnClick", "document.body.style.cursor='wait'")
    End Sub

homes
常連さん
会議室デビュー日: 2002/08/06
投稿数: 38
投稿日時: 2005-12-21 11:37
返信ありがとうございます。
Page_Load のタイミングで"OnClick"を追加することで実現
できました。

もうひとつ出来れば質問があるのですが、このカレンダーコントロールには
e.Day.IsSelectable = False に設定している項目があります。

この項目をクリックした時にはカーソルはそのままにしたいのですが、
可能でしょうか。
homes
常連さん
会議室デビュー日: 2002/08/06
投稿数: 38
投稿日時: 2005-12-22 19:03
大変申し訳ありません。
何とか自分なりにやってみました。
DayRenderイベントの中で下記のコードを記述して可能となりました。

e.Cell.Attributes("OnClick") = "document.body.style.cursor='wait'"

何かとお騒がせして申し訳ありませんでした。
1

スキルアップ/キャリアアップ(JOB@IT)