C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: ASP.NET2.0 TreeView チェックボックス


(過去ログ 21 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■8548 / inTopicNo.1)  ASP.NET2.0 TreeView チェックボックス
  
□投稿者/ osada (16回)-(2007/10/02(Tue) 19:43:32)

分類:[.NET 全般] 

皆様、お世話になります。
長田と申します。

環境はASP.NET2.0です。

1.新規にWebフォームを作成して、その中にTreeViewとボタンを作成します。 
2.TreeViewはチェックボックスを持つように設定。 
3.ボタン押下時にTreeViewの中でチェックボックスを選択されているものを取得して、ラベルに表示。 

ネットにてサンプルを見つけたのですが、C#なため解読できません。(泣く
VB.NETでしたらどのようになりますでしょうか宜しければご教授頂きたく思ってます。


ご指導お願い致します。 

TreeViewイメージ 
□大分類A 
 □中分類1 
  □小分類1 
  □小分類2 
  □小分類3 
 □中分類2 
  □小分類1 
  □小分類2 
  □小分類3 
□大分類B 
 □中分類1 
  □小分類1 

コード(※ツリービューを作る所は省略) 
//ボタン押下時 
protected void Button1_Click(object sender, EventArgs e) 
{ 
  System.Text.StringBuilder sb = new System.Text.StringBuilder(); 
  //大分類 
  sb.Append(SelectNode(TV1.Nodes)); 
  foreach (TreeNode tn in TV1.Nodes) 
  { 
    //中分類 
    sb.Append(SelectNode(tn.ChildNodes)); 

    foreach (TreeNode tn2 in tn.ChildNodes) 
    { 
      //小分類 
      sb.Append(SelectNode(tn2.ChildNodes)); 
    } 
  } 
  Label1.Text = sb.ToString(); 
} 

//ノードに日もづく子ノードで且つ選択されているものを取得 
public static string SelectNode(TreeNodeCollection tnc) 
{ 
  System.Text.StringBuilder sb = new System.Text.StringBuilder(); 
  foreach (TreeNode tn in tnc) 
  { 
    if (tn.Checked) 
    { 
      sb.Append(tn.Text); 
    } 
  } 
  return sb.ToString(); 
} 

〆切が近く、申し訳ありません。
宜しくお願い致します。

引用返信 編集キー/
■8566 / inTopicNo.2)  Re[1]: ASP.NET2.0 TreeView チェックボックス
□投稿者/ ひろ (58回)-(2007/10/03(Wed) 10:01:12)
No8548 (osada さん) に返信

えっと、この内容ですと、

どっかから拾ってきたサンプルが「C#」で書いてあって、判らないし、時間もないので「VB.NET」に翻訳しろ!

という風にとれるのですが、気のせいでしょうか?

「C#が判らない」そうですが、今後サンプルを探す場合、必ずしも「VB.NET」で書かれている
という保証もないので「読める」程度にはなると良いと思います。

で、C#が判らなくても、使用してるクラスは判りますよね。
MSDN で各クラスが何をするのか調べていますか?
それを調べるだけで VB.NET に置き換えるのは難しくないですよ。

使っているコントロールやクラスはこれだけ。

・TreeView
・TreeNode
・StringBuilder

TreeView コントロールを使用するなら当然ですが調べていると思いますので、TreeNode も判るはずです。
StringBuilder は VB.NET では使用不可ですか?
foreach だって VB の時代からある訳だし…

何が判らないのか判りません。

引用返信 編集キー/
■8568 / inTopicNo.3)  Re[2]: ASP.NET2.0 TreeView チェックボックス
□投稿者/ PATIO (25回)-(2007/10/03(Wed) 10:46:05)
掲示板はタイムリーにレスがつくとは限りませんし、
レスがつくのが一週間後だったりする事も考えられるわけで
使うにしても時間が無いと気に使う手段としては気休め程度ではないかと思いますが。

時間が無いのであれば、むしろ近くの人に聞きまくってでもサンプルの内容を
解読するとか、WebでC#の基礎的な部分だけでも勉強して自分で読んだ方が多分確実ではないかと。
C#の場合、C++なんかよりは遥かにVB的な書き方がされているので解読は比較的容易だと
思いますよ。
頑張ってください。

引用返信 編集キー/
■8844 / inTopicNo.4)  Re[3]: ASP.NET2.0 TreeView チェックボックス
□投稿者/ osada (20回)-(2007/10/11(Thu) 11:45:57)
ご回答頂き、ありがとうございます。
なにぶん時間が無かったもので、結局解決致しました。

下記ロジックにてツリービューにデータを格納することが出来ました。

 '------------------------
    'SUB名    :btnTeritory_Click
    '作成者   :osada
    '作成日   :2007/10/02
    '引数    :-
    '処理概要  :各検索キーワードを元にテリトリーを検索する
    '           :
    '修正履歴  :
    '------------------------
    Protected Sub btnTeritory_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnTeritory.Click
        Try
            '検索フラグをテリトリー検索に設定する
            blnSearchFlg = False
            lblSelectSearch.Text = "テリトリー検索"
            'TreeNode初期化
            TreeView1.Nodes.Clear()
            '初期項目【Selection】
            Dim SELECTIONNode As New TreeNode("Selections")
            SELECTIONNode.ImageUrl = "~/image/フォルダロゴ.bmp"
            'ツリービューにノードを格納
            TreeView1.Nodes.Add(SELECTIONNode)
            '************* ページレイアウト作成処理 Start *************
            'メッセージラベル初期化
            lblErr.Text = ""
            '************* ページレイアウト作成処理 End *************

            '******** ドロップダウンリストの値を取得する Start ********
            'ビジネスドロップダウンリストの値格納
            Dim strBZNS As String = drpBzns.Text
            '変換処理【ビジネスコード取得】
            InitCodeConvert(strBZNS)
            '県ドロップダウンリストの値格納
            Dim strKen As String = drpKen.Text
            '変換処理【県コード取得】
            InitCodeConvert(strKen)
            '支店ドロップダウンリストの値格納
            Dim strShiten As String = drpShiten.Text
            '変換処理【支店コード取得】
            InitCodeConvert(strShiten)
            '******** ドロップダウンリストの値を取得する Start ********

            'テリトリー検索ボタン押下時のストアドプロシージャ
            Dim strSQL As String = "PKG_TETRYSEARCH.SP_TETRYSEARCH"

            'オラクルコネクションの生成 及び 接続文字列の関連付け
            cn = New OracleConnection(setting.ConnectionString)

            'オラクルコマンドの生成 及び ストアドプロシージャの関連付け
            cmd = New OracleCommand(strSQL, cn)
            'オラクルコマンドタイプの指定
            cmd.CommandType = Data.CommandType.StoredProcedure

            'パラメータ設定を行う
            funParaAdd(cmd, strBZNS, strKen, strShiten, blnSearchFlg)

            '現在ビジネスコード宣言
            Dim strNowBzns As String = ""
            '過去ビジネスコード宣言
            Dim strPrevBzns As String = ""
            'ツリーノード宣言【ビジネス】
            Dim BznsNode As TreeNode

            '接続オープン
            cn.Open()

            'データリーダにてストアドプロシージャの実行
            dr = cmd.ExecuteReader()

            If dr.Read = False Then
                lblErr.Text = "データベースに値が存在しません。"
            Else
                Do
                    '現在のビジネスコードを格納
                    strNowBzns = dr("BSNSCD")

                    '現在ビジネスと変数ビジネスが等しいかを判定
                    If strPrevBzns <> strNowBzns Then
                        'ツリーノードを生成【ビジネス】 及び ビジネス項目格納
                        BznsNode = New TreeNode(strNowBzns)
                        'ロゴ格納
                        BznsNode.ImageUrl = "~/image/ビジネスノードロゴ.bmp"
                        ''チェックボックス付与
                        'BznsNode.ShowCheckBox = True
                        'ツリービューにノードを格納
                        TreeView1.Nodes.Add(BznsNode)
                    End If

                Loop Until dr.Read = False

            End If
            'オラクルデータリーダーの接続Close
            dr.Close()
            'オラクルコネクションの接続Close
            cn.Close()

            '******** ボタン制御 Start **********
            'クリアボタン使用可能
            btnClear.Enabled = True
            '社内用Excelボタン使用可能
            btnInExcel.Enabled = True
            '社外用Excelボタン使用可能
            btnOutExcel.Enabled = True
            '品目検索ボタン使用不可
            btnMDLSearch.Enabled = False
            'テリトリー検索ボタン使用不可
            btnTeritory.Enabled = False
            '******** ボタン制御 End **********

        Catch ex As Exception
            'エラー内容表示
            lblErr.Text = ex.Message
        Finally
            'DB接続インスタンスの解放を行う
            InitDBReaderDispose(cn, cmd, dr)
        End Try
    End Sub

本当にありがとうございます。
これからも宜しくお願い致します。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -