Обновите раскрывающееся значение в Grails с помощью <g: submitToRemote> - PullRequest
3 голосов
/ 07 сентября 2010

Я только что вышел на арену Grails.

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

Мой код выглядит следующим образом:

_connType.gsp

<div id="mappedDeviceDiv">
    <select id="mappedDevice" name="mappedDevice" value="" style="width:200px">
    <g:each in="${deviceList}" status="i" var="dl">
        <option value="${dl}">${dl}</option>
    </g:each>
    </select>

    <g:submitToRemote class="blackButton" update="mappedDeviceDiv"
          url="${[controller:'resource',action:'getDeviceList']}"
          value="Get Devices"/>
</div>

ResourceController.groovy

def getDeviceList = {

    println "Getting NV devices.. + Nirmal" + params
    def model = buildAccessRequestModel()

    List<NVDeviceBean> deviceList = NVUtil.getDevices(params.datasource, null);
    Collections.sort(deviceList);
    List<String> devices = []
    for(NVDeviceBean deviceBean : deviceList) {
        devices.add(deviceBean.getName())
    }
    println "list = "+devices
    model.putAt('deviceList', devices)
    render (template:'config/connType',model:model)
}

Таким образом, в приведенном выше сценарии он устанавливает значения на устройствах идеально, но на стороне просмотра в выпадающем меню, получая всю страницу connType, а не только список значений, которыенаходится в переменной устройства устройства.

Любая помощь будет высоко ценится.

1 Ответ

3 голосов
/ 07 сентября 2010

Возможно, вы захотите создать / изменить одно из действий контроллера, чтобы получить список параметров HTML. Вы могли бы даже заставить это действие визуализировать шаблон.

def getDeviceOptions = {

    def options = []
    // code that creates the option list goes here.

    render(template:'config/optionList', model: [optionList: options ])
}

И шаблон ...

<!-- config/_optionList.gsp -->
<g:each in="${optionList}" status="i" var="dl">
    <option value="${dl}">${dl}</option>
</g:each>

Затем скажите тегу g:submitToRemote обновить объект выбора.

<g:submitToRemote class="blackButton" update="mappedDevice"
      url="${[controller:'resource',action:'getDeviceOptions']}"
      value="Get Devices"/>

Это должно привести вас в правильном направлении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...