code: private void handleExpandedState(final Request request) {
  
  		String[] paramValue = request.getParameterValues(getId() + OPEN_REQUEST_KEY);
  		if (paramValue == null) {
  			paramValue = new String[0];
  		}
  
  		String[] expandedRowIds = removeEmptyStrings(paramValue);
  		Set<String> newExpansionIds = new HashSet<>();
  
  		if (expandedRowIds != null) {
  			int offset = getItemIdPrefix().length();
  			for (String expandedRowId : expandedRowIds) {
  				if (expandedRowId.length() <= offset) {
  					LOG.warn("Expanded row id [" + expandedRowId + "] does not have a valid prefix and will be ignored.");
  					continue;
  				}
  				// Remove prefix to get item id
  				String itemId = expandedRowId.substring(offset);
  				// Assume the item id is valid
  				newExpansionIds.add(itemId);
  			}
  		}
  		setExpandedRows(newExpansionIds);
  	}
docs: Handle the current expanded state.
  
  @param request the request containing row expansion data.