0

コードを介してasp.netWebフォーム内の子ノードにチェックボックスを設定する方法を理解しようとしています。

私の方法:

protected void CreateTreeViewList(System.Web.UI.WebControls.Panel p, ICollection<Agency> a)
        {
            TreeView agencyTreeView = new TreeView();

            var results = a;

            foreach (var item in results)
            {
                TreeNode node = new TreeNode(item.AgencyName);

               // var myagencies = item.SecurityDataShares1;

                Array entityList = Enum.GetValues(typeof(Entities));

                foreach (var ei in entityList)
                {
                   node.ShowCheckBox = true;
                   node.ChildNodes.Add(new TreeNode(ei.ToString()));
               }

                node.ChildNodes.Add(new TreeNode());

                agencyTreeView.Nodes.Add(node);
            }
            p.Controls.Add(agencyTreeView);
        }

これはツリービューコントロールでの私の最初のショットなので、少しずれている可能性があります(ヒントをいただければ幸いです)。

私が立ち往生しているのは、ネストされたforeachで、ノードをレンダリングすることができます(エンティティリストは10個のテキスト要素の配列にすぎません)。表示テキストボックスを割り当てる方法がわからないようです

私は試した

node.ChildNodes.Add(new TreeNode(ei.ToString()).ShowCheckbox = true);

インテリセンスはそれをサポートしていましたが、コンパイラはそれをスローしてエラーを出しました。

また、補足として、チェックボックスリストにノードがリンクとして表示されていることに気付きました。これを無効にする方法はありますか?

前もって感謝します、

4

1 に答える 1

0

さらに検索した後、TreeNodeTypesプロパティを発見しました

以下または前のメソッドの最後に次の行を追加しますp.Controls.Add(agencyTreeView)

各子ノードにチェックボックスを追加しました

agencyTreeView.ShowCheckBoxes = TreeNodeTypes.Leaf;

これが興味のある人に役立つことを願っています

于 2012-04-11T20:50:59.700 に答える