- - PR -
カレンダーコントロールで
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-08-03 20:57
お世話になります。
> デバッグ実行して動作を確認する。 JavaScript の部分ってデバッグできますか?エラーや alert() などで表示すればその時点での内容は確認できますが、エラーなくやったふりなどした場合動作がつかめません。 提示されたコード自体は、理解できなくもないのですがコードを加えるとなるとC#のようなデバッグのようなことができないと動きが理解できません。 この2日間進むことなく提示のサンプルの域から出られなくまいってます。 諦めるつもりはありませんが...... やってみたこと 1.ツールチップの初期スタンバイで表示を消す。-> 下記にて可 window.onload = function() { mouseover(); hideToolTip(); // 初期表示のツールチップを消す } 2.カレンダーを「ツールボックス」内に変更し表示 -> OK 3.ツールチップの内容を任意に変更 このサンプル内では、inputタグ内に書いているものを表示していて、さらに日付内に書き出されている。実際にタグ内に下記で書いたときか、ツールチップのテーブルを用意したときに、それを見つけるコードがわからない。 Calendar1_DayRender() TableCell cell = (TableCell)e.Cell; cell.Controls.Add(new LiteralControl("<BR>" + "abcde")); 実際は、後者ができればいいのですが... この部分は、まったくわかりません。 | ||||
|
投稿日時: 2008-08-03 21:24
ここまでは出来たのですね?
セルレンダーで追加した項目は、どんなタグで展開されますか? 日付のアンカータグより後ですか?前ですか? <td> タグ内の並び順はどうなっていますか? 並び順でやるなら、childNodes というのが使えます。 順不同なら、getElementsByTagName で取れます。 JavaScript のインテリセンスやデバッガは今のところ無いのかな? VisualStudio2008ではJavaScriptのコードアシストが効くような話 をどこかで聞いたような聞かなかったような・・・です。 | ||||
|
投稿日時: 2008-08-04 08:57
お世話になります。
> 追加した項目は、どんなタグで展開されますか? 日付のアンカータグより後ですか?前ですか? <a href="javascript:__doPostBack('Calendar1','3135')" style="color:Black" title="8月1日">1</a><BR>ZXC</td><td align="center" style="background-color:Tan;border-width:1px;border-style:Solid;width:14%;"> <a href="javascript:__doPostBack('Calendar1','3136')" style="color:Black" title="8月2日">2</a><BR>ZXC</td></tr> <tr><td align="center" style="background-color:Tan;border-width:1px;border-style:Solid;width:14%;"> という感じで吐き出されています。 また、ツールチップを表示すと同じタイミングでデフォルトのツールチップも表示してきます。下記の吐き出されたコードは、カレンダ部分のトップで title="カレンダー" 部分だと思うのですがこれをなくすことはできないのでしょうか?デフォルトの日付部分は、表示してもOK。プロパティでの細工は、できますか?何らかの文字を入れるとそれが出るし、なくすと標準(?)のカレンダーの文字が出てしまう。 >< のようなコードみたいなものは、ないのでしょうか? <table id="Calendar1" cellspacing="0" cellpadding="2" title="カレンダー" border="0" ----- 追加 下記のように、「子要素...」から下のコードを追加することでツールチップを表示しましたが、この方法は正しいですか?1枚目のカレンダーのみで2つめ3っつ目については、まだ試してません。 if (!anchorFlag) { var tt = showToolTip(); var ob = event.srcElement; //var hdn = ob.getElementsByTagName("input"); //var txt = ""; //if (hdn && hdn.length == 1) { // txt = hdn[0].value; //} var txt; oElements = ob.childNodes; // 子要素リスト for (i = 0; i < oElements.length; i++) { oElement = oElements[i]; if(oElement.nodeName == "#text") { txt = oElement.nodeValue; //alert(txt); } } aspx.cs int cnt=0; protected void Calendar1_DayRender(object sender, DayRenderEventArgs e) { CalendarDay day = (CalendarDay)e.Day; TableCell cell = (TableCell)e.Cell; if (!day.IsOtherMonth) { if ((cnt % 2) != 0) { cell.BackColor = System.Drawing.Color.Tan; cell.Controls.Add(new LiteralControl("<BR>" + "abcde")); } else { cell.BackColor = System.Drawing.Color.Tan; cell.Controls.Add(new LiteralControl("<BR>" + "ZXC")); } ++cnt; } } [ メッセージ編集済み 編集者: SL 編集日時 2008-08-04 09:50 ] | ||||
|
投稿日時: 2008-08-04 11:24
サンプルを作成しましたので
よろしければ参考にしてください。 ライブデモ: http://asp35.com/samples/080804VB-1.aspx?it=demo [View Code]ボタンをクリックするとソースコードが表示されます。 _________________ ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集 | ||||
|
投稿日時: 2008-08-04 16:00
お世話になります。
> サンプルを作成しましたので.... AjaxとjQueryを使用されたサンプルですね。 まだ、この両者を使って作成していないので構成等よくわかりません。今の JavaScript の学習が上記を生かすことになると思いますので後ほどトライしてみます。 JavaScript について教えてください。 セルにマウスがポイントしたとき、ツールチップが表示されるときのそこにある日付を取得したいのですがどうしたらできますか? 教えてください。 [ メッセージ編集済み 編集者: SL 編集日時 2008-08-04 21:19 ] | ||||
|
投稿日時: 2008-08-04 21:21
それくらい、本を買ってきて勉強しましょうよ。。。getElementById | ||||
|
投稿日時: 2008-08-05 00:45
>サンプルを作成しましたので
jQuery だとやっぱり劇的に小さくなるんですね〜。 ある程度できたら jQuery に切り替えようかなぁ、と思っていたのですが・・・ そこでAccessさんのご登場を願おうかと思っていた次第ですw痺れ切らせて しまい申し訳ないです;; 全然進まないんですよね。。。 デフォルトのツールチップは title だったかそこらへんを細工すれば 出なく出来ます。 イベント発生オブジェクトは td要素なんで、 event.srcElement.getElementsByTagName("a")[0].title = ""; で消せます。並び順を意識するならば、[0] きめ打ちです。 jQuery だと便利なメソッドで find ってのがあるようですね。 >この方法は正しいですか? 大丈夫です。 >それくらい、本を買ってきて勉強しましょうよ。。。getElementById 本じゃなくても、「とほほ」なりDOMリファレンスなり参考ページを見ている と思っていたのですけどね・・・ >今の JavaScript の学習が上記を生かすことになると思います 一応、jQuery のコードで言うと、タグを探すところとかは、 $("#Calendar1 tr td "). ここですかね。こちらのコードだとなんだか3重のループ回したり していますが、あっさり書けちゃいますね、jQuery だと。 でもやっていることを理解した上で jQuery でコード書くと応用の 幅が広がりますから、たぶん。 どっちでやるにせよ、がんばって理解してください。 | ||||
|
投稿日時: 2008-08-05 09:13
お世話になります。
> event.srcElement.getElementsByTagName("a")[0].title = "";で消せます これだと日付部分が消えますね。できれば”カレンダー”と表示される部分を消したいのでが...... > >それくらい、本を買ってきて勉強しましょうよ。。。getElementById > 本じゃなくても、「とほほ」なり..... その通りです。これでやってました。ただ、getElementById ももちろん試していたのですが、null になりうまく取得できませんでした。それできいた次第です。 > どっちでやるにせよ、がんばって理解してください。 そうですね。JavaScript やスタイルシートなしでは、コードが書けないと思いますのでもう少し勉強してから、jQuery,Ajax に手を出してみます。 |