0

ページにツリービューがあり、いくつかのイベントでノードを更新/追加したい - たとえば、ドロップダウン リスト、チェックボックス リストなどがあります。ツリービューにはレベル 0 のノードが既に定義されています。dropdown_selectedIndexchanged イベントで、ノード 0 の子としてノードを 1 つだけ追加したいと考えています。そのために私はこれをやっています -

aspx ページのツリービュー

<asp:TreeView ID="tv1" runat="server">
   <Nodes>
       <asp:TreeNode Text="parent" Value="" ShowCheckBox="False"></asp:TreeNode>
   </Nodes>
</asp:TreeView>

.cs ページのコード

dropdown_SelectedIndexChanged(object sender, EventArgs e)
{
   tv1.Nodes[0].ChildNodes.Add(new TreeNode(dropdown.SelectedIndex.Text.Trim)));
}

問題は見えますが、解決方法がわかりません。問題は、tv1 ツリービューのレベル 0 に子ノードを 1 つだけ追加したいということです。

どうやってやるの

4

1 に答える 1

1

ドロップダウンの「AutoPostBack」プロパティがfalseに設定されているため、機能していない可能性があります。このプロパティを true に設定した場合にのみ、イベント ハンドラが起動します。次のコードは私のために働いています。

        <asp:DropDownList ID="dropdown" runat="server" AutoPostBack="True" OnSelectedIndexChanged="dropdown_SelectedIndexChanged">
            <asp:ListItem>One</asp:ListItem>
            <asp:ListItem>Two</asp:ListItem>
        </asp:DropDownList>
    <asp:TreeView ID="tv1" runat="server">
   <Nodes>

       <asp:TreeNode Text="parent" Value="" ShowCheckBox="False"></asp:TreeNode>
   </Nodes>
</asp:TreeView>

コード ビハインド (直接またはインデックスで値を取得できます):

        protected void dropdown_SelectedIndexChanged(object sender, EventArgs e)
        {
            tv1.Nodes[0].ChildNodes.Clear();
            tv1.Nodes[0].ChildNodes.Add(new TreeNode(dropdown.SelectedValue));
        }
于 2012-12-17T13:22:34.613 に答える