DHTMLX Docs & Samples Explorer

beforeOutput

The beforeOutput event occurs after data has been selected from the database and ready to be sent to client side

        class CustomBehavior extends ConnectorBehavior{
            @Override 
	    public void beforeOutput(StringBuffer out, HttpServletRequest http_request) {
                 //any custom code
	    } 
        }
        component.event.attach(new CustomBehavior());

beforeOutput method receives output string buffer and incoming request data as parameters.

Event can be used to mix some custom data in XML output.

Most common use-case - header structure for the grid.

        class CustomBehavior extends ConnectorBehavior{
            @Override 
	    public void beforeOutput(StringBuffer out, HttpServletRequest http_request) {
                  out.append("<head>");
                  out.append("<column width="50" type="dyn" align="right" color="white" sort="str">Sales</column>");
                  out.append("<column width="150" type="ed" align="left" color="#d5f1ff" sort="str">Book Title</column>");
                  out.append("</head>");
	    } 
        }
        component.event.attach(new CustomBehavior());

In case of dyn. loading mode, one more check need to be added, to prevent data output for additional data calls.

        class CustomBehavior extends ConnectorBehavior{
            @Override 
	    public void beforeOutput(StringBuffer out, HttpServletRequest http_request) {
                  String start = request.getParameter("posStart");
                  if (start == null) { //output only during first call
                        out.append("<head>");
                        out.append("<column width="50" type="dyn" align="right" color="white" sort="str">Sales</column>");
                        out.append("<column width="150" type="ed" align="left" color="#d5f1ff" sort="str">Book Title</column>");
                        out.append("</head>");
                  }
	    } 
        }
        component.event.attach(new CustomBehavior());