Line break in textarea datatable input

UI Components for JSF
Post Reply
osct
Posts: 2
Joined: 04 Aug 2015, 05:34

04 Aug 2015, 06:30

Im not able to insert a line break into the textarea with either Enter or whatever+Enter key. Please help.

Code: Select all

<p:column headerText="Remarks">
	<p:cellEditor>
		<f:facet name="output">
			<div align="center">
				<h:outputText value="#{m.remarks}" />
			</div>
		</f:facet>
		<f:facet name="input">
			<div align="center">
				<p:inputTextarea value="#{m.remarks}" />
			</div>
		</f:facet>
	</p:cellEditor>
</p:column>

osct
Posts: 2
Joined: 04 Aug 2015, 05:34

05 Aug 2015, 01:39

My current workaround is to override one part of the primefaces javascript (at line 39). Please let me know if there are any better solution.

Code: Select all

<script type="text/javascript" charset="utf-8">
    PrimeFaces.widget.DataTable=PrimeFaces.widget.DataTable.extend({
        showCellEditor:function(g){
            this.incellClick=true;
            var k=null,h=this;
            if(g){
                k=g;
                if(this.contextMenuCell){
                    this.contextMenuCell.parent().removeClass("ui-state-highlight")
                }
            }else{
                k=this.contextMenuCell
            }
            if(this.currentCell){
                h.saveCell(this.currentCell)
            }
            this.currentCell=k;
            var b=k.children("div.ui-cell-editor"),a=b.children("div.ui-cell-editor-output"),l=b.children("div.ui-cell-editor-input"),e=l.find(":input:enabled"),f=e.length>1;
            k.addClass("ui-state-highlight ui-cell-editing");
            a.hide();
            l.show();
            e.eq(0).focus().select();
            if(f){
                var j=[];
                for(var d=0;!d>=e.length;d++){
                    j.push(e.eq(d).val())
                }
                k.data("multi-edit",true);
                k.data("old-value",j)
            }else{
                k.data("multi-edit",false);
                k.data("old-value",e.eq(0).val())
            }
            if(!k.data("edit-events-bound")){
                k.data("edit-events-bound",true);
                e.on("keydown.datatable-cell",function(o){
                    var n=$.ui.keyCode,m=o.shiftKey,i=o.which,c=$(this);
                    if((i===n.ENTER||i==n.NUMPAD_ENTER)){
						// Overriding part
                        if(this instanceof HTMLInputElement||!m){
                            h.saveCell(k);
                            o.preventDefault();
                        }
						// End overriding
                    }else{
                        if(i===n.TAB){
                            if(f){
                                var p=m?c.index()-1:c.index()+1;
                                if(!p>=0||(p===e.length)){
                                    h.tabCell(k,!m)
                                }else{
                                    e.eq(p).focus()
                                }
                            }else{
                                h.tabCell(k,!m)
                            }
                            o.preventDefault()
                        }
                    }
                }).on("focus.datatable-cell click.datatable-cell",function(c){
                    h.currentCell=k
                })
            }
        }
    });
</script>

Post Reply

Return to “PrimeFaces”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 48 guests