grid.selection.getSelected().length при выборе одной строки

Я создал dojox.grid.DataGrid и хочу выполнить некоторые операции над строками, выбранными пользователем, поэтому я разместил предупреждение, чтобы получить нет. строк, выбранных пользователем.

Я использую: var noofrows=grid.selection.getSelected().length; оповещение (нет потоков); чтобы получить количество строк, выбранных пользователем в сетке. Когда пользователь выбирает одну строку, приведенный выше оператор предупреждает 0, но он должен всплывать 1, поскольку 1 строка выбрана пользователем. Когда пользователь выбирает несколько строк, отображается правильное количество строк, выбранных пользователем.

После выбора нескольких строк (правильный результат появляется), когда пользователь выбирает одну строку, появляется правильный вывод, то есть: 1.

Итак, в основном проблема заключается в том, что когда пользователь выбирает одну строку в первый раз, появляется неправильный вывод (например: 0).

Вот код создания сетки:

<table id="AA.FavouritesGrid" dojoType="dojox.grid.DataGrid"
    region="center"
    jsId="table"
    id="table"
    store="AAFavouritesStore"  style="font-size:30px;width:100%;padding:0px;display:0px;">
    <thead>
        <tr>

            <%
            String userCode ="";
            userCode = request.getUserPrincipal().getName();
            try {
                Map<String,String> columnNameLabelMap=model.getDynamicNameLabelmap("Favourites", userCode, locale);

                // Loop round columns ordered by user
                for (Map.Entry<String, String> entry : columnNameLabelMap.entrySet()){
                    int width = columnDataById.get(entry.getKey()).getWidth();
                    columnDataById.remove(entry.getKey());
            %>
            <th field=<%=entry.getKey() %> width="<%=width%>" height="22px" nowrap="nowrap"><%=entry.getValue()%></th>

            <%
                }
            } catch (Exception e) {

                System.out.println(e);
            }

            // Present any left over columns in default order
            for (ColumnData entry : columnDataById.values()){
            %>
            <th field=<%=entry.getId() %> width="<%=entry.getWidth()%>" height="22px" nowrap="nowrap"><%=entry.getName()%></th>

            <%
            }
            %>

            <th field="path" hidden="true"></th>
            <th field="underwritingYear"  hidden="true" ></th>
            <th  field="lpRCTLobDesc"     hidden="true" ></th>
            <th  field="lpRCTLob"    hidden="true" ></th>
        </tr>
    </thead>
</table>

favContextMenu = dojo.connect(dijit.byId("AA.FavouritesGrid"),"onCellContextMenu", favouritesGridOnContextMenu );

функция избранногоGridOnContextMenu(e) {

оповещение (таблица.выбор.getSelected().длина); }

Пожалуйста, помогите решить проблему

Спасибо


person user2927223    schedule 28.10.2013    source источник
comment
Вопрос не ясен. Пожалуйста, отредактируйте его, чтобы мы могли понять, что вы имеете в виду.   -  person JulyOrdinary    schedule 28.10.2013
comment
отредактировано .. пожалуйста, помогите решить проблему   -  person user2927223    schedule 28.10.2013
comment
Пожалуйста, отправьте код, чтобы мы могли понять, где ошибка.   -  person JulyOrdinary    schedule 28.10.2013
comment
дайте мне знать, если вам нужна дополнительная информация   -  person user2927223    schedule 28.10.2013
comment
Я нашел кое-что интересное. На самом деле это две вещи: пользователь сначала щелкает (щелкает левой кнопкой мыши) по строке, а затем щелкает правой кнопкой мыши, он возвращает правильный вывод (например: 1). Если пользователь щелкает правой кнопкой мыши по строке, он возвращает неверный результат (например, 0). Как это можно решить??   -  person user2927223    schedule 29.10.2013


Ответы (1)


Попробуйте ниже 2 способа получить выбранный предмет и предметы.

var e = dijit.byId("addressMapStoreGrid");
    if (e.focus.rowIndex < 0) {
        alert('Please select one row!');
        return;
    }

-

var items = grid.selection.getSelected();   
person CHowdappaM    schedule 29.10.2013
comment
Спасибо за оперативную помощь ... Я попробовал приведенный выше код, но проблема все еще сохраняется. На самом деле это две вещи: пользователь сначала щелкает (щелкает левой кнопкой мыши) по строке, а затем щелкает правой кнопкой мыши, он возвращает правильный вывод (т.е.: 1). Если пользователь щелкает правой кнопкой мыши по строке, он возвращает неверный результат (например, 0). Как это можно решить?? - person user2927223; 06.11.2013
comment
@user2927223 user2927223 это потому, что эта строка не выбрана в данный момент, поэтому вы не можете использовать метод .getSelected(). Вы можете сначала выбрать строку, когда пользователь щелкнет правой кнопкой мыши. - person GuyT; 21.05.2014