- PR -

Treeクリックイベント

投稿者投稿内容
DaikiRyuto
大ベテラン
会議室デビュー日: 2002/07/23
投稿数: 200
投稿日時: 2002-09-25 09:22
引用:

souさんの書き込み (2002-09-25 00:58) より:
ALADDINさんのやりたいことは

Dim Tn As TreeNode
Tn = TREEVIEW1.getTreeNode(e.NewNode)

もしくは、

Dim Tn As TreeNode
Tn = TREEVIEW1.getTreeNode(TREEVIEW1.selectedNodeIndex)

でいけるはずです。



あらら、簡単な方法がありましたか。
でも、ちょっとメソッドが違う様子。

コード:
TreeView1.GetNodeFromIndex(e.NewNode);
TreeView1.GetNodeFromIndex(TreeView1.SelectedNodeIndex);



みたいですね。
なるほど、e.NewNodeが文字列なのは、こういう方法があるからなのか。
Indexだからint型だと勝手に思ってました。
面倒なやり方を薦めてしまい失礼しました。

(うーん、ASP.NETの開発は、こんな風に、やり終えた後に、どんどん正しい方法がわかっていく………)
ALADDIN
ベテラン
会議室デビュー日: 2002/08/20
投稿数: 85
お住まい・勤務地: 渋谷
投稿日時: 2002-09-25 09:39
ALADDINです

souさん、DaikiRyutoさん色々有難うございました。
プログラムもすっきりしてきました。

で、関係ないのですが新たな問題発生です^^;
現在フレームを利用しているのですが
(左のフレームにツリービュー、右にラベル)
左のフレーム(ツリーの方)でSelectedIndexChangeを取るために
AutoPostBackをtureにしターゲットを右のフレームにしています。
イベント内でクリックされたノードのテキストを
セッションオブジェクトに格納し、Response.Redirectで
右のラベルがあるフレームをリロードしようとしています。
(リロード時にセッションオブジェクトから
テキストを取ってきてラベルに格納)
・・・が、ターゲットが右のフレームになっているために
右にツリーが描画されてしまいます。
みなさんはどのように回避されていますか?




DaikiRyuto
大ベテラン
会議室デビュー日: 2002/07/23
投稿数: 200
投稿日時: 2002-09-25 10:40
引用:

ALADDINさんの書き込み (2002-09-25 09:39) より:

・・・が、ターゲットが右のフレームになっているために
右にツリーが描画されてしまいます。
みなさんはどのように回避されていますか?



ああ、そういう利用法を考えられていたわけですか。
Response.Redirectメソッドを呼び出す前に、画面の部品に対する操作をしてしまうと、(なぜかは私にはわからないんですが)、target指定先に(Redirect先で指定した画面ではなくて)元の画面が表示されてしまうわけですね。

この現象(知識がある方には当然なのかもしれませんが)には、私も迷って、前のプロジェクトでは、結局formのtarget属性を_topにして、Response.Redirectでフレームごと呼び直すことにしてしまったんですね。

が、その時にはTreeViewのイベントなどは使わず、NavigateUrlだけしか使いませんでした。
TreeViewのSelectイベントを使用している場合、フレームの全体再描画でやるのは無理そうですね(Nodeを展開するだけでイベントが発生してしまい、フレームの左側だけの画面が表示されてしまう)。
うーん、イベントはあきらめて、クリックされる先ごとにページを替える(NavigateUrlの設定で)、というのではダメですかねぇ(^_^;
ALADDIN
ベテラン
会議室デビュー日: 2002/08/20
投稿数: 85
お住まい・勤務地: 渋谷
投稿日時: 2002-09-25 11:02
ALADDINです。

なんか難しそうですね・・・。
単にエクスプローラみたいなものを
ブラウザベースで作りたいだけなのですが・・・。
たったこれだけのものでもASP.NETでやるのは
大変なんですね。めげそうW

いまは過去のスレッドで「複数フレーム同時書き換え」
というのを見つけたので、そこに書いてあるように
JavaScriptできないかと思案中です。
DaikiRyutoさん色々有難うございました。

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