У меня есть веб-сайт (веб-формы ASP.NET), и я использую плагин jQuery для построения дерева на стороне клиента.Для этого я строю строку с помощью StringBuilder, а затем получаю мои данные следующим образом:
dataForTree = "var data=" + sb.ToString() + ";";
Затем я передаю это в свое дерево с помощью RegisterClientScriptBlock, например:на моем клиенте я получаю такие данные:
<script type="text/javascript">
$(function () {
$("#myTree").dynatree({
children: $(data)
});
});
Теперь я знаю, что данные передаются правильно, потому что я получаю правильное представление дерева при загрузке, и все отлично.Когда я активирую узел, мне нужно отобразить некоторые данные об этом узле, поэтому я делаю обратную передачу для применения к серверу и снова передаю данные.Это также работает, все отображается великолепно.
Но затем я оставляю эту страницу ненадолго, достаточно нескольких минут и снова активирую узел.И тут есть проблема.Мое дерево исчезает.Когда я смотрю на код в отладчике Chrome или Firebug, я вижу, что переменной данных там нет.Хотя, повторяю, я передаю его клиенту при каждой обратной передаче.Почему это происходит - я никогда не знаю.Серьезно, я сломал голову над этим, я просто не понимаю, почему это так.