Spring.addDecoration с использованием dojo и HTML-столкновения при пожаре событий - PullRequest
3 голосов
/ 17 ноября 2011

Я использую виджет dojo, который в roo генерирует .jspx файлы. Где следующий мой код частей

<form:select name="halfOrFulDay" id="_monitoringType_id${rowCounter.count}" Style="width:120px" onchange="someProcess()">
   <form:option value="--Select--" selected="selected">--Select--</option>
   <form:option value="Half Day" >Half Day</option>
   <form:option value="Full Day" >Full Day</option>
   <form:option value="None" >None</option>
</form:select>
<script type="text/javascript">Spring.addDecoration(new Spring.ElementDecoration({elementId : '_monitoringType_id${rowCounter.count}', widgetType: 'dijit.form.FilteringSelect', widgetAttrs : {promptMessage: 'In Complete Data',hasDownArrow : true}})); </script>

Моя проблема в том, что я не могу запустить событие onchange , как только я применил Spring.addDecoration (). Есть ли какой-либо атрибут, который я могу установить в widgetAttrs ? Что-то вроде:

widgetAttrs: { onchange: someProcess , promptMessage: 'In Complete Data', hasDownArrow: true}

1 Ответ

3 голосов
/ 18 ноября 2011

dijit.form.FilteringSelect не является обычным узлом dom. Это виджет диджит ... Его событие onchange присоединяется к конкретному узлу dom шаблона виджета, а также к точке расширения виджета, называемой onChange (обратите внимание на заглавную C).

Ваш пример должен быть:

<script type="text/javascript">
    Spring.addDecoration(new Spring.ElementDecoration({
        elementId : '_monitoringType_id${rowCounter.count}', 
        widgetType: 'dijit.form.FilteringSelect', 
        widgetAttrs : {
            promptMessage: 'In Complete Data',
            hasDownArrow : true,
            onChange : function(evt) {
               // Your event code here
            }
        }
    })); 
</script>

Вы должны прочитать об этом здесь: http://dojotoolkit.org/reference-guide/quickstart/writingWidgets.html#creating-extension-points

Для всех виджетов, которые вы используете через Spring, вы найдете соответствующую документацию здесь: http://dojotoolkit.org/api/

Просто разверните узел дерева «dijit», затем выберите свой виджет, а затем посмотрите на список пользовательских событий, которые он поддерживает, в разделе «Сводка событий».

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