- PR -

Treeクリックイベント

投稿者投稿内容
ALADDIN
ベテラン
会議室デビュー日: 2002/08/20
投稿数: 85
お住まい・勤務地: 渋谷
投稿日時: 2002-09-17 13:14
ALADDINです。

TreeViewのノードのクリックイベントを
とりたいのですが、ご教授お願いします。
ALADDIN
ベテラン
会議室デビュー日: 2002/08/20
投稿数: 85
お住まい・勤務地: 渋谷
投稿日時: 2002-09-17 14:29
ALADDINです

追加です。

OnInitのところに
tree.Collapse += new ClickEventHandler(this.tree_Collapse);
といれて
tree_Collapse関数を追加で記述しています。
この関数が呼ばれていないみたいです
ALADDIN
ベテラン
会議室デビュー日: 2002/08/20
投稿数: 85
お住まい・勤務地: 渋谷
投稿日時: 2002-09-24 13:17
ALADDINです。

イベントは取れたのですが、AutoPostback
なのでノードを展開したときにもクリックイベント
が起こって画面の書き換えがなされてしまいます。
SelectedIndexChangeが発生したときだけ書き換え
が出来るようにはできないのでしょうか?

またノードのnodeTitleとnodeDataを取得するには
どのようにしたら良いでしょうか?
DaikiRyuto
大ベテラン
会議室デビュー日: 2002/07/23
投稿数: 200
投稿日時: 2002-09-24 14:10
引用:

ALADDINさんの書き込み (2002-09-24 13:17) より:

イベントは取れたのですが、AutoPostback
なのでノードを展開したときにもクリックイベント
が起こって画面の書き換えがなされてしまいます。
SelectedIndexChangeが発生したときだけ書き換え
が出来るようにはできないのでしょうか?

またノードのnodeTitleとnodeDataを取得するには
どのようにしたら良いでしょうか?



えーと、どのイベントを使ってどのようにコーディングされているのでしょうか?
nodeDataというのはNodeDataプロパティのことだと思いますが、nodeTitleというのは何でしょう?
NodeDataであれば、NodeかTreeへの参照があれば取れると思いますが…
イベントの引数からNodeは取れませんか?

散文的になってしまって申し訳ありません。
ただ、どういう状況なのか見えないもので。
ALADDIN
ベテラン
会議室デビュー日: 2002/08/20
投稿数: 85
お住まい・勤務地: 渋谷
投稿日時: 2002-09-24 14:40
ALADDINです。

すいませーん、nodeTitleは私が作った変数名でした><
TreeNode型のtextプロパティのことです。
nodeDataはNodeDataのことです。

イベントの引数は
(object sender, Microsoft.Web.UI.WebControls.TreeViewSelectEventArgs e)
の2点です。

Microsoft.Web.UI.WebControls.TreeViewSelectEventArgsの方で取れそうな
気がするのですが・・英語弱くて><
資料が英語しかないみたいです(IEの英語版のWebContorolのせいですかね)
VS.NETのヘルプでも英語です。
DaikiRyuto
大ベテラン
会議室デビュー日: 2002/07/23
投稿数: 200
投稿日時: 2002-09-24 15:05
引用:

ALADDINさんの書き込み (2002-09-24 14:40) より:

イベントの引数は
(object sender, Microsoft.Web.UI.WebControls.TreeViewSelectEventArgs e)
の2点です。




こんな感じでいけますか?
乱暴なので、適宜整理してください。

コード:
private void tree_Select(object sender, Microsoft.Web.UI.WebControls.TreeViewSelectEventArgs e) 
{
    string[] nodes = e.NewNode.Split('.');
    Microsoft.Web.UI.WebControls.TreeNode n = null;
    for (int i = 0; i < nodes.Length; i++) 
    {
        if (i == 0)
        {
            n = TreeView1.Nodes[int.Parse(nodes[i])];
        }
        else
        { 
            n = n.Nodes[int.Parse(nodes[i])];
        }
    }
    Label1.Text = n.Text; // ラベルにNodeのTextプロパティを設定してみる
}


ALADDIN
ベテラン
会議室デビュー日: 2002/08/20
投稿数: 85
お住まい・勤務地: 渋谷
投稿日時: 2002-09-24 18:36
ALADDINです。

できましたー^^

引用:

DaikiRyutoさんの書き込み (2002-09-24 15:05) より:
string[] nodes = e.NewNode.Split('.');
</PRE><HR SIZE="1"></TD></TR></TABLE><!-- BBCode End -->



この部分が良く解らないのですが・・・
sou
ベテラン
会議室デビュー日: 2002/09/25
投稿数: 56
投稿日時: 2002-09-25 00:58
ALADDINさんのやりたいことは

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

もしくは、

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

でいけるはずです。

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