Выбор jqGrid не заполнен данными из Struts2

Я снова застрял, используя jqGridin Struts2 с struts2-jquery plugin. На этот раз я хотел поместить <select/>поле в диалоговое окно поиска для столбца, как это сделано в этом руководстве здесь

Я построил и протестировал действие, которое должно возвращать JSP с выбором и всеми заполненными значениями внутри него, и оно работает нормально, я думаю, что проблема полностью связана с jqGrid. Может быть, я что-то упускаю из виду здесь.

Когда я открываю всплывающее окно поиска и выбираю столбец, который я хочу найти (тот, который имеет набор select), он запускает действие, которое извлекает данные, а затем появляется ввод select, но без данных внутри него, он кажется нулевым , поэтому у меня есть пустой select.

Ниже я публикую часть своего кода:

Глобальная конфигурация jqGrid:

 <sjg:grid
        id="resGrid"
        altRows="false"
        caption="%{getText('reservationTable.title')}"
        dataType="json"
        href="%{remoteurl}"
        editurl="%{deleteUrl}"
        pager="true"
        gridModel="gridModel"
        rowList="10,15,30"
        rowNum="15"
        navigator="true"
        navigatorSearch="true"
        autowidth="true"
        navigatorAdd="false"
        onDblClickRowTopics="rowSelect"
        navigatorEdit="false"
        navigatorDelete="false"
        navigatorSearchOptions="{
                multipleSearch: true, 
                closeAfterSearch: true,
                afterRedraw: afterRedraw
        }"
        navigatorExtraButtons="{
                photos : { 
                        title : '%{getText('reservationTable.icon.photo')}', 
                        icon: 'ui-icon-image', 
                        onclick: showPhotos,
                        position: 'first'
                }
        }"
        >

Конфигурация столбца jqGrid:

<sjg:gridColumn name="execution" 
index="execution" 
title="%{getText('execution')}" 
formatter="execution" 
search="true" 
searchtype="select" 
searchoptions="{ sopt:['eq'], 
                 dataUrl:'%{selecturl}', 
                 value: ':All;'}"/>

Результат извлечения данных (скопировано из руководства, на которое я ссылался выше, это работает нормально):

<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ page contentType="text/html; charset=UTF-8" %>
<s:select list="executionStrValues" theme="simple" emptyOption="true"/>

Я застрял с этим на пару дней, и я провел некоторое исследование, я обнаружил, что этот скрипт может быть полезен, как в этой ссылке ЗДЕСЬ эта проблема с jqGrid обсуждается на Github. Я использовал это так:

 <script type="text/javascript">
(function() {
    $.jgrid = {
            defaults : {
                ajaxSelectOptions: 'GET',
                async: false
            }
        }
})();
</script> 

Этот другой открытый вопрос также относится к этой теме: ССЫЛКА
Я также видел некоторых людей предлагаю использовать formatter="select"для строки, но, если я правильно понял, мне это не нужно, потому что я не редактирую этот столбец как написано в документации.


ОБНОВЛЕНИЕ: КОНФИГУРАЦИЯ ДЕЙСТВИЯ Ниже моего <s:url>, который запускает действие, возвращающее значения и конфигурацию действия:

<s:url var="selecturl" action="getExecutionStatus" />

getExecutionStatus.action, где ExecutionStatus — это перечисление:

@ResultPath(value = "/")
public class UtilsAction extends ActionSupport {

    private static final long serialVersionUID = 3672057774005126256L;
    private List<String> executionStrValues;

    @Action(value="getExecutionStatus", results={
            @Result(name="success",location="jsp/selectExecution.jsp"),
            @Result(name="input", location="jsp/error.jsp"),
            @Result(name="login", location="index.jsp")
            })
    public String getExecutionValues(){

        List<ExecutionStatus> executionValues = Arrays.asList(ExecutionStatus.values());
        executionStrValues = new ArrayList<String>();

        for(ExecutionStatus ex: executionValues)
            executionStrValues.add(getText("executionStatus."+ex.toString()));


        return SUCCESS;

    }//getExecutionValues

    public List<String> getExecutionStrValues() {
        return executionStrValues;
    }

    public void setExecutionStrValues(List<String> executionStrValues) {
        this.executionStrValues = executionStrValues;
    }

    public static long getSerialversionuid() {
        return serialVersionUID;
    }
}

person JorgeGRC    schedule 11.12.2014    source источник
comment
Покажите свой класс действия selecturl и конфигурацию.   -  person Aleksandr M    schedule 11.12.2014
comment
@AleksandrM, пожалуйста, смотрите обновленный вопрос.   -  person JorgeGRC    schedule 12.12.2014
comment
@AleksandrM есть новые идеи? Я все еще застрял с этим и понятия не имею, что может пойти не так.   -  person JorgeGRC    schedule 16.12.2014
comment
Если ваш ExecutionStatus является перечислением, зачем вам нужно действие для его извлечения? Вы можете просто использовать его в теге select - stackoverflow.com/q/16063819/1700321.   -  person Aleksandr M    schedule 16.12.2014
comment
@AleksandrM, потому что так работает плагин jqgrid для заполнения выбора внутри поля поиска значениями этого перечисления. Я действительно не знаю другого способа обойти это.   -  person JorgeGRC    schedule 16.12.2014


Ответы (1)


поместите его на свою страницу jsp. Я думаю, это работает. <%@taglib prefix="s" uri="/struts-tags"%> <%@taglib prefix="sj" uri="/struts-jquery-tags"%> <%@taglib prefix="sjg" uri="/struts-jquery-grid-tags" %>

person thataya    schedule 16.12.2014
comment
Здравствуйте, спасибо за ответ, но он не работает :( - person JorgeGRC; 16.12.2014