【发布时间】:2011-07-13 01:33:19
【问题描述】:
现在我正在使用一个在我的页面中启用了复选框的 ASP.NET TreeView,并且我通过使用节点值来存储从 db 获得的 id 在后面的 C# 代码中动态填充树。在回发时,我遍历节点并获取已检查的节点并将其存储回数据库中。
为了获得三态复选框(在 ASP.NET TreeView 中不可能),我想移动到 jQuery Treeview。最有希望的似乎是 http://wwwendt.de/tech/dynatree/doc/samples.html 的 Dynatree(点击左侧的持久性。)
还有其他一些免费的带有复选框的 ASP.NET Treeview 可以使用吗?
为了填充动态树,我正在考虑将 UL 和 LI 元素写入 ASP.NET LiteralControl,然后在 html 中配置动态树以使用该 DIV 填充树。这是最好的方法吗?我是否按照文档中的建议将节点 ID 放在 li id 中,以便我可以在后端读回它?
但是,我无法找到一种简单的方法来读取代码隐藏中的值以存储在数据库中。 即如何查看是否在 C# 代码中选中了复选框节点? 文档是这样说的: // 获取树的 JavaScript 对象副本 var dict = $("#tree").dynatree("getTree").toDict(); // ... 然后使用 Ajax 将其发送到您的服务器...
是否可以在不使用 ajax 的情况下以某种方式在回发按钮单击事件中看到它,使用隐藏的 asp.net 控件并在回发中读取它?
【问题讨论】:
-
如果您找不到简单的方法,您是否至少尝试过一种艰难的方法?有很多方法可以做到这一点。从服务器的角度来看,它可以像读取查询字符串参数一样简单。
-
IMO,最简单的方法是使用 Ajax 对服务器端脚本进行 POST 并更新数据库。不能使用 Ajax 有什么特别的原因吗?
标签: c# jquery asp.net treeview checkbox