- - PR -
TreeViewコントロールの子ノードのテキストが取得できないです
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-03-29 10:52
よろしくお願いします。
ASP.NET(VB.NET)でTreeViewコントロール(MSからdownload)を使用して開発しています。 選択されたノードのテキストが取得したいです。 以下のプロパティで親ノードのテキストは取得できるのですが、 子ノードのテキストが取得できません。 myString = TreeView1.Nodes(TreeView1.SelectedNodeIndex).Text 日本語版のTreeViewが微妙だといううわさを聞いたのですが関係あるのでしょうか? ご存知の方ご教授お願いします。 | ||||
|
投稿日時: 2004-03-29 11:26
面倒ですが、上から順にたどってください。
| ||||
|
投稿日時: 2004-03-29 17:14
Jittaさん、BIGありがとうございます、100%理解できていませんが動きました。
インデックスプロパティは文字列なのですね。 ついでといっては何ですが、クライアント側のスクリプト(vbscript)でも、 ノードテキストを取得したいのですが、やっぱりできません。 ご存知でしたらご教授お願いします。 よろしくお願いします。 | ||||
|
投稿日時: 2004-03-29 21:39
それは困りました。理解して、使ってください。私があなたのプロジェクトをメンテナンスすることはできないので、何らかの仕様変更(たとえば、逆に、インデックスが必要になる、なんてことはありませんか?)があると、あなたがメンテナンスしなければならないからです。 基本は、最初のコメントの通り、「ノードを特定するために、上から順に選択されているノードを特定する」です。インデックスは、デバッガでみればわかりますが、「1.3.2.1」の形で入っています。 まず、delm = String.IndexOf()で、SelectStringの、StartIndex位置から検査を始めて、"."ピリオドがある文字位置をdelmに代入します。 delmが0未満ならば、ピリオドは見つかりませんでした。indexを最後の位置、startIndexから後ろの文字列をintegerに変換した値として、startIndexには最終を示す、-1を入れます。 delmが0以上ならば、indexをselectStringのstartIndex文字目からdelm-startIndex文字文取り出した文字列をintegerに変換した値にします。startIndexには、次の検索位置を示すdeml+1を入れます。 指定文字列を指すappointedに、node配列のindex番目のTextプロパティ、つまり表示している文字列を入れます。 Nodesは、1つ子に下がります。 これを、startIndexが0以上の間続けることで、階層を順に下がります。 もっといい方法があって、splitすると、階層の個数分、配列ができるんですよね。そうすると、もっとすっきり、わかりやすくなるのですが、かなり前に作ったものなので、、、 クライアント側で取得する方法は、わかりません。あしからず。 |
1