Как получить значение строки флажка типа дерева XUL JavaScript - PullRequest
1 голос
/ 04 августа 2011

Я новичок в программировании на XUL и Java-Script.

Я только что понял, что я совершенно не в том направлении, прежде чем объединять две строки, пользователь должен выбрать значения, которые он хочет объединить. Я хочу показать эти значения в отдельном окне с раскрывающимся списком.

У меня есть xul дерево "type =" checkbox "", и дерево формируется с использованием шаблона дерева XML.

  1. Как получить значения выбранного флажка соответствующей строки (Получение текста из выбранных строк), флажок реализован с использованием CSS.

<treecol type="checkbox" label="CheckBox" editable="true"/>

2.У меня есть выпадающее меню, и я хочу отобразить выбранные строки значений древовидных ячеек там.

Как я могу получить значения значений строк дерева выбора флажка и динамически добавить его в раскрывающееся меню? Пожалуйста, ведите меня, друзья.

Это мой код дерева XUL:

tree editable="true" id="myTodoListTree" flex="1" seltype="multiple"
datasources="file://C:/mercredi.xml" ref="*" querytype="xml" enableColumnDrag="true">

        <treecols>
        <treecol type="checkbox" label="CheckBox" editable="true"/>
        <treecol sortActive="true" sort="?name" id="name" label="FirstName" flex="1" persist="width ordinal hidden"  sortDirection="ascending"/>
               <splitter class="tree-splitter" />                   
            <treecol sortActive="true" sort="?lastname" id="lastname" label="LastName" flex="1" persist="width ordinal hidden" sortDirection="ascending"/>
                <splitter class="tree-splitter" />                    
            <treecol sortActive="true" sort="?gmail" id="gmail" label="Gmail" flex="1" persist="width ordinal hidden"  sortDirection="ascending"/>
                <splitter class="tree-splitter" />
        </treecols> 
 </tree>

 <row>
<label  value="FirstName"/>
<label  value="LastName"/>
<label  value="Gmail"/>

</row>
    <row>

   <menulist id="firstname">
    <menupopup >
    </menupopup>
    </menulist>

     </row>
</window>

Сначала я попытался получить значения для выбранной строки, она не работает: https://developer.mozilla.org/en/XUL/tree

function getCellChecked(tree, columnid)
{
alert('1');
  var arr = [];
  var column = tree.columns.getNamedColumn(columnid);
  for (var i = 0; i < tree.view.rowCount; i++){
    if (tree.view.getCellValue(i, column) == 'true')
      arr.push(i);
  }
  return arr;
  alert('final'+arr);

}

Файл CSS:

treechildren::-moz-tree-checkbox(checked)
{
  list-style-image: url("chrome://global/skin/checkbox/cbox-check.gif");
}
treechildren::-moz-tree-checkbox(disabled)
{
  list-style-image: url("chrome://global/skin/checkbox/cbox-check-dis.gif")
}

Пожалуйста, смотрите изображение дерева xul здесь: [url = http://postimage.org/image/2t1lnsczo/][img]http://s1.postimage.org/2t1lnsczo/jeudi1.jpg[/img][/url]

1 Ответ

2 голосов
/ 12 августа 2011

После 2 дней ударов головой об этой проблеме, наконец-то удалось решить проблему с помощью моего друга. Немногие документы на веб-сайте Firefox не совсем понятны и не имеют правильных примеров.

Вот решение: Эта функция используется для получения значений строк дерева выбора флажка и добавления этих значений в мой список меню. Тип дерева - «флажок», и он реализован с использованием CSS.

Мы можем получить значения строк дерева с помощью метода getNamedColumn tree.columns.getNamedColumn().

Затем используйте метод getCellValue(), чтобы получить значение (текстовое содержимое) выбранной строки (строк).

 function merge()
    {
      var tree = document.getElementById('myTodoListTree');//Id of the tree
      for (var i = 0; i < tree.view.rowCount; i++) {
      if (tree.view.getCellValue(i, tree.columns.getColumnAt(0)) == 'true') 
//To get the cell values of the entire row, if the check-box is selected(True)// 
{
    alert(
    tree.view.getCellText(i, tree.columns.getNamedColumn("name"))+"\n"+
    tree.view.getCellText(i, tree.columns.getNamedColumn("lastname")));
//Testing my output with alert message.

//Appending my output to my menu-list.  
  var firstName= tree.view.getCellText(i, tree.columns.getNamedColumn("name"));
    var menu = document.getElementById("firstname");
      menu.appendItem(firstName);

    var lastName= tree.view.getCellText(i, tree.columns.getNamedColumn("lastname"));
    var menu = document.getElementById("laastname");
      menu.appendItem(lastName);

        }
      }
      return arr;  
    }
...