none
【ASP.NET】如何动态删除TreeView中的节点呢? RRS feed

  • 问题

  • 根据数据库中的数据,动态生成了TreeView树菜单,现在想在每个节点的右面增加“删除” 字样,用来删除对应的节点。不知道具体实施步骤?

    我现在的思路是:生成菜单的同时加载对应的“删除”按钮并绑定对应CommandArgument为对应节点在数据库中的ID值,然后利用事件托管绑定这些按钮的点击事件,当点击删除的时候激发事件,执行SQL语句删除数据库对应ID字段的信息,再次加载TreeView。

    以上是我的思路,不知道大家还有什么其他的看法么?请指教,谢谢!

     

    但我发现,创建的删除按钮对象,没有对应的容器将其加载到其中,比如:this.div.Controls.Add(BT);

     

    PS:本人对XML,JS操作不太熟练,希望通过服务器事件解决此问题。

    实现的效果如同上图

    2010年6月10日 2:55

答案

  • 你好,

    如果要完全实现你上面的要求,ASP.NET中提供的treeview无法满足你的要求。

    如果你可以稍微改动下,或许可以实现。

    如给每个节点注册一个onmouseover和onmouseout事件,当鼠标移动到某一个节点的时候,用来在旁边显示一个div,用来显示修改或删除。

    当然你得把当前节点的id或其它标识信息传递给div里面的隐藏控件,这样当点击删除或修改的时候才知道要操作的对象。

    否则可能你得自定义控件了,这个比较麻烦,建议你考虑下上面的方法。

     


    Microsoft Online Community Support
    2010年6月14日 2:02

全部回复

  • 思路基本正确

    我以前用过这个,有那些事件记不清楚了。

    不过如果有直接remove节点的方法,就不要重新加载整个treeview,这样速度快点。

     


    family as water
    2010年6月11日 1:46
  • 你好,

    如果要完全实现你上面的要求,ASP.NET中提供的treeview无法满足你的要求。

    如果你可以稍微改动下,或许可以实现。

    如给每个节点注册一个onmouseover和onmouseout事件,当鼠标移动到某一个节点的时候,用来在旁边显示一个div,用来显示修改或删除。

    当然你得把当前节点的id或其它标识信息传递给div里面的隐藏控件,这样当点击删除或修改的时候才知道要操作的对象。

    否则可能你得自定义控件了,这个比较麻烦,建议你考虑下上面的方法。

     


    Microsoft Online Community Support
    2010年6月14日 2:02