PDA

Просмотр полной версии : Как удалять строчки из adg? и заодно, как обновлять xml в экплорере без перезагрузки?


rukez
28.02.2009, 04:17
Два вопросика, вопрос первый:
есть advanceddatagrid на основе иерархического xml файла вида:
<a>
<a/>
<a/>
</a>
<a/>
есть желание динамически удалять выбранные строки.
как добавлять догадался (adg.selectedItem.appendChild() работает на ура) а вот как их удалять? попытка адресации по xml через selectedIndex не работает по причине того что индексы у xml и adg не совпадают, адресация поиском selectedItem внутри xml теоретически должна работать но какой-то костыльный метод :( Как получить от adg адрес выбранной строки в виде который можно применять к исходному xml файлу? Ну или хотя-бы как нормально удалять выбранные строчки ? :wacko:

И второй вопросик который давно навис и сильно мучает :rolleyes:
При обновлении xml файла (например добавляем строчку или меняем переменную), открытый в экслоурере флексовый файл не видет изменений до тех пор пока не закроешь окно обозревателя и снова не откроешь страничку - как с этим бороться ?
Просто ситуация довольно простая - xml меняется динамически через сам флекс (аккурат через adg с вопросом выше), поменяли xml загруженный в ролик, всё отлично, сохранили изменения на сервере, всё то-же отлично, нажали F5 (обновили страничку) ... видим старое содержимое xml'ки, и пока не закроешь браузер и не откроешь снова новое содержимое не подхватывается :eek:
Обновление с зажатым шифтом (или с контролом, не помню точно какое из них чистит кэш и в результате пробую оба :away:) не помогает, только перезагрузка самого обозревателя - как побороть ? :o

Заранее спасибо за ответы :yahoo:

GBee
28.02.2009, 11:53
1) А у самих элементов нет ИД какого-нить?
2) Чистите кэш, либо как вариант добавьте в путь параметр и меняйте его при обновлении. http://somedomain.ru/some.xml?rnd=2233324
http://somedomain.ru/some.xml?rnd=22334
http://somedomain.ru/some.xml?rnd=1324

rukez
02.03.2009, 01:20
1) ИД можно ввести но повторюсь что искать удаляемую строку хочется меньше всего - файл довольно большой и хотелось как-то обойтись "курсором" благо в момент нажатия кнопки "удаление" адг уже знает какой элемент выделен т.е. получается что придётся делать второй раз пересчёт всего файла :(
2) Спасиб, идея!

Добавлено через 13 часов 29 минут
С удалением удалось разобраться путём ввода ид в каждую ноду xml, в итоге удалять можно вот так:
delete xmlProvider.descendants("*").(@id==adg.selectedItem.@id)[0]
не очень правильно :umnik2: но зато работает :victory:

Добавлено через 17 часов 18 минут
по удалению нашёлся ещё вот такой способ:
var node:XML = tree.selectedItem as XML;
delete node.parent().elements()[node.childIndex()];
проверено, работает но есть проблемка с индексами (соседняя тема)