如何访问服务器上的Jquery TreeView?

如何在表单提交时访问.aspx文件中的Jquery Treeview? 另外,我可以动态添加节点到Jquery Treeview吗? (在客户端)

我正在使用asp.net网络表单,c#

编辑:有人在其中一个问题中提到了以下内容:“在表单提交时,有人将不得不在客户端编写代码来收集数据并通过Ajax将其发送到服务器方法”

怎么做的?????

好吧,我想我找到了你想要的东西。 看看这里 。

简而言之,您必须在服务器端定义WebMethod,然后您可以使用jQuery轻松访问它。 一个优秀的工作示例在上面的链接下,在这里我将修改它以显示如何传递参数。 所以…

在您的页面代码隐藏* .cs中:

// We'll use this class to communicate public class Dog { public string Name { get; set; } public string Color { get; set; } } // This is your page, in my case Default.aspx public partial class _Default : System.Web.UI.Page { [WebMethod] public static string ProcessData(Dog myDog) { return "Your " + myDog.Color + " dog's name is " + myDog.Name + "!"; } } 

然后在* .aspx上:

    Color: 
Name:

所以在这里填写文本框,然后将数据发送到服务器,将其理解为Dog对象。 注意参与传递,因为这是最令人困惑的部分。 你应该以JSON格式传递它们,这有点“太多了”。 所以我在这里使用json2.js脚本,它有助于将常用的javascript对象转换为JSON序列化字符串(JSON.stringify()方法)。 它在这里可用。 但它仍然相当丑陋=)重要的是我传递称为“myDog”的参数,其值是序列化的dogItem。 因为这正是服务器期望得到的(例如,我无法更改参数名称,所以这不起作用

 data: "{'someAnotherArgumentName':" + dogItemSerialized + "}" 

最后一件事。 注意以下几行:

 success: function(msg) { $("#result").text(msg.d); } 

如果您使用的是3.5之前的ASP.NET(例如,ASP.NET 2.0),那么您只需编写$(“#result”)。text( msg )而不是msg.d。 由于某种原因,只有ASP.NET 3.5封装了“d”成员下的所有数据…

无论如何,在上面的文章中你可以找到有用的链接(在文章和注释中),所以你可以阅读更多关于参数,“msg.d”等等。

我希望这有帮助!

由于jQuery Treeview是客户端组件,因此无法从服务器端访问它。 因此,为了将任何数据从树传递到服务器,您必须编写客户端javascript代码(实际上是jQuery代码)。 关于在动态中向树视图添加节点的相同之处:仅使用客户端jQuery代码。 请记住,服务器端的C#不知道您的TreeView。

jQuery和ASP.NET WebForms之间的集成是相当有问题的并且“不那么自然”,因为ASP.NET建立在不同的概念上……所以如果你正在使用ASP.NET WebForms,我建议你使用服务器 – 而不是侧面组件(它可以是Microsoft自己的ASP:TreeView或其他第三方WebForms目标组件)。 或者,您可以尝试新的ASP.NET MVC框架 – 它建立在更常见的(对于其他Web开发平台)概念上,并且它与jQuery之间的集成很简单(实际上jQuery甚至附带它)。

不要误解我的意思……我不是说jQuery和ASP.NET WebForms之间的集成是完全不可能的。 有可能的。 但是你需要做“不那么漂亮”的事情,并为每一个简单的操作努力。 如果您仍想使用jQuery,则仅将其用于客户端动画…

更新:至于这句话 – “在表单提交上,有人将不得不在客户端编写代码来收集数据并通过Ajax将其发送到服务器方法” – 嗯,这正是我所说的。 在客户端,您在提交表单时调用javascript方法(例如,通过在“提交”按钮上设置onclick =’mymethod();’)。 这段代码完成了它需要做的事情然后……它应该使用jQuery很好的语法执行AJAX调用。 但是这不适用于ASP.NET WebForms,正如我之前解释过的那样。 好吧,你可以阅读有关Microsoft AJAX客户端库(这里: http : //msdn.microsoft.com/en-us/magazine/cc163300.aspx ),也许这会有所帮助。 但我仍然认为这种整合并不容易和直截了当。 将jQuery用于动画,将ASP.NET服务器端组件用于所有其他事情!