Я впервые играю с jstree (1.0rc2) + jquery (1.4.2) с c # .net, и хотя у меня все получилось, есть пара вещей, которые я не понимаю о том, как данныепредоставляется дереву веб-сервисом, который я использую для заполнения дерева (используя ajax и плагин json_data).Я надеялся, что кто-то с большим опытом использования jstree сможет дать некоторую информацию.
Конфигурация jstree выглядит следующим образом:
"json_data": {
"ajax": {
"url": "GetTree.asmx/GetChildren",
"type": "POST",
"contentType": "application/json; charset=utf-8",
"dataType": "json",
"data": function(n) {
var result = "{'id':'" + (n.attr ? n.attr("id").replace("node_", "") : "0") + "'}";
return (result);
}
}
}
GetTree.asmx Метод GetChildren:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Xml )]
public string GetChildren(string id)
{
List<jsTreeNode> jsTree = new List<jsTreeNode>();
//... (build the tree as needed)
JavaScriptSerializer serializer = new JavaScriptSerializer();
return(serializer.Serialize(jsTree));
}
Вопрос 1: Так что все отлично работает, так в чем проблема?Проблема в "ResponseFormat = ResponseFormat.Xml".Некоторое время я боролся за то, чтобы это работало, потому что оно не работало, когда было установлено значение ResponseFormat.Json, что я и ожидал.В этой ситуации веб-служба или jQuery не будут сообщать об ошибках при синтаксическом анализе ответа json, но дерево будет отображаться пустым.
При просмотре вывода HTML веб-службы я не вижуРазница между тем, что было оказано в любом случае.Я надеялся, что кто-нибудь сможет объяснить, почему это работает (нелогично) и почему оно не работает с ResponseFormat.Json, и если это указывает на что-то еще, я могу ошибаться.
Вопрос 2: Как правило, веб-сервис или веб-обработчик?
Будет ли использование универсального веб-обработчика (ashx) более эффективным способом сделать это в любом случае?Есть ли существенная разница в накладных расходах, требуемых от стандартного веб-сервиса, по сравнению с обычным веб-обработчиком?Поскольку моя цель в основном состоит в том, чтобы точно контролировать то, что выводится (и использование формата данных json в веб-службе, похоже, не работает так, как мне этого хочется), я не уверен, какая выгода, если таковая имеется,используя веб-сервис здесь, вместо того, чтобы просто удалить его полностью.С другой стороны, теперь это работает, так что, может быть, мне стоит оставить себя в покое.