Tuesday, 20 November 2018

Drodown using ajax



STEP 1 : 
<aui:select id="region" name="region" label="" cssClass="regionDropdown">
<aui:option value="0" selected="selected">Region</aui:option>
</aui:select>

STEP2 : 
<script type="text/javascript">

window.addEventListener("load", onloadSingleRecord);

function onloadSingleRecord() {
populateAllDropdowns();
}

function populateAllDropdowns() {
var urlAction = "<%=retrieveDropdownListURL.toString()%>";
$.ajax({
      url: urlAction, 
      type: 'POST',
      dataType : "json",
      success: function(result){
      if(result["STATUS"] == "SUCCESS") {
          populateRegionDropdown(result["REGION_DROPDOWN"]);
      }
    }    
  });
}


STEP 3: 

<portlet:resourceURL id="LOAD_DROPDOWN_LIST" var="retrieveDropdownListURL" />
<script>
var retrieveDropdownListURL = '<%=HtmlUtil.escapeJS(retrieveDropdownListURL.toString()) %>';
</script>


STEP 4: 

@SuppressWarnings("static-access")
@Override
public void serveResource(ResourceRequest resourceRequest, ResourceResponse resourceResponse)throws IOException, PortletException {

String resourceId = resourceRequest.getResourceID();

if (null == resourceId || resourceId.isEmpty()) {
resourceResponse.setProperty(resourceResponse.HTTP_STATUS_CODE, "400");
resourceResponse.getWriter().write("This is not a valid request");
return;
}
if (resourceId.equals("LOAD_DROPDOWN_LIST")) {
fetchDropdownListUsingResource(resourceResponse);
} 



/* This is for Region drop down */
function populateRegionDropdown(resultData) {
if(resultData != null) {
var numberOfRows = resultData["REGION_DROPDOWN_ROWS"];
var dropDownObj = document.getElementById("<portlet:namespace/>region");
for(var rowCtr = 0; rowCtr < parseInt(numberOfRows); rowCtr++) {
var option_value = resultData[rowCtr]["RegionPK"] + '@@' + resultData[rowCtr]["RegionName"]
var newRow = new Option(resultData[rowCtr]["RegionName"], option_value);
dropDownObj.options[dropDownObj.length] = newRow;
}
}
}

STEP 5 : 

public static void fetchDropdownListUsingResource(ResourceResponse resourceResponse) throws IOException {
JSONObject json = null;
try {
json = JSONFactoryUtil.createJSONObject();
json.put("REGION_DROPDOWN", getRegionDropdownJSON());
json.put("STATUS", "SUCCESS");
resourceResponse.getWriter().write(json.toString());
resourceResponse.flushBuffer();
} catch (IOException e) {
json.put("STATUS", "FAILED");
resourceResponse.getWriter().write(json.toString());
resourceResponse.flushBuffer();
_log.error(e.getMessage());
}
}


STEP 6 : 

private static JSONObject getRegionDropdownJSON() {
JSONObject dropdownJson = JSONFactoryUtil.createJSONObject();
JSONObject rowData = null;

List<VwTcDropdownLists> listObj = VwTcDropdownListsLocalServiceUtil.getRegionDropDown();
if (listObj != null && (!listObj.isEmpty())) {
dropdownJson.put("REGION_DROPDOWN_ROWS", "" + listObj.size());
VwTcDropdownLists beanObj = null;
for (int i = 0; i < listObj.size(); i++) {
beanObj = listObj.get(i);
rowData = JSONFactoryUtil.createJSONObject();
rowData.put("RegionPK", "" + beanObj.getItemTreePosition());
rowData.put("RegionName", "" + beanObj.getItemName());
dropdownJson.put("" + i, rowData);
}
} else {
dropdownJson.put("REGION_DROPDOWN_ROWS", "" + 0);
}

return dropdownJson;
}



No comments:

Post a Comment