Командная кнопка RichFaces onclick методы - PullRequest
1 голос
/ 07 июня 2011

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

<a4j:commandButton  styleClass="btn-hide"
                                        onl
                                        id="btnId"  
                                        type="submit" 
                                        value="addNew"
                                        rendered="true" 
                                        reRender="panel"
                                        eventsQueue="eventQueue"    
                                        status="eventQueue" 
                                        actionListener="#{(someMethod.something)}"                                           
                                        oncomplete="javascript:something;this.disabled=false"
                                        onclick="Bean.setDesc(document.getElementById('inputArea').value);this.disable=false"
                                        ignoreDupResponses="true"
                                        immediate= "true"> 
                                          <s:conversationId></s:conversationId>
                            </a4j:commandButton>

Если вы посмотрите на часть onclick, мне нужно сначала запустить Bean.setDesc, а затем this.disabled = false.Как мне поступить в хронологическом порядке?

Спасибо

1 Ответ

2 голосов
/ 07 июня 2011

Вот заглушка кода, чтобы вы начали.Вы захотите использовать a4j: jsFunction, если хотите получить значения непосредственно от клиента и передать их методу сервера с помощью javascript.

<h:form id="form1" prependId="false">        

    <a4j:jsFunction 
        name="setDesc"
        action="#{exampleBean.actionMethod()}" 
        immediate="true">
        <a4j:param name="inputAreaValue" assignTo="#{exampleBean.desc}"/>
    </a4j:jsFunction>

    <h:commandButton id="button" onclick="setDesc(document.getElementById('inputArea').value); this.disabled = true;" />
</h:form>

и управляемого компонента:

@ManagedBean(name = "exampleBean")
@SessionScoped
public class ExampleBean implements Serializable {

    private static final long serialVersionUID = 6823632613070575039L;

    private String desc;

    public String getDesc() { return desc; }
    public void setDesc(String desc) { this.desc = desc; }

    /**
     * Action Method 
     */
    public void actionMethod() {
        // do something here
    }


}
...