gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 22:27:33 26 4
gpt4 key购买 nike

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

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

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

这是怎么做到的?????

最佳答案

嗯,我想我已经找到你想要的了。看看here .

简而言之,您必须在服务器端定义一个 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 上:

<script src="jquery-1.3.2.min.js" type="text/javascript"></script>
<script src="json2.js" type="text/javascript"></script>

<script type="text/javascript">

$(document).ready(function() {
$("#btnProcess").click(function() {
// This is what we want to send to the server
var dogItem =
{
Color: $("#txtColor").val(),
Name: $("#txtName").val()
};

// And this is how it should be sent - in serialized way
var dogItemSerialized = JSON.stringify(dogItem);

$.ajax({
type: "POST",
url: "Default.aspx/ProcessData",
data: "{'myDog':" + dogItemSerialized + "}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
$("#result").text(msg.d);
}
});
});
});

</script>
Color: <input id="txtColor" type="text" /><br />
Name: <input id="txtName" type="text" /><br />
<input id="btnProcess" type="button" value="Click Me" />
<div id="result"></div>

所以在这里你填写文本框,然后你的数据被发送到服务器,服务器将它理解为 Dog 对象。注意参数传递,因为这是最令人困惑的部分。您应该以 JSON 格式传递它们,这有点“过于严格”。所以我在这里使用 json2.js 脚本,它有助于将普通的 javascript 对象转换为 JSON 序列化字符串(JSON.stringify() 方法)。可用here .但它仍然相当丑陋 =) 重要的是我传递名为“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”等的信息。

希望对您有所帮助!

关于c# - 如何访问服务器上的Jquery TreeView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/753293/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com