How about moving one line of code from getGridData into serviceResultHandler,
something like:
private function getGridData():void
{
CursorManager.setBusyCursor();
var service:WebService = new WebService();
service.addEventListener(ResultEvent.RESULT, serviceResultHandler);
service.addEventListener(FaultEvent.FAULT, serviceFaultHandler);
service.loadWSDL("http://localhost:55841/Service1.asmx?WSDL");
service.RetrieveSuppliers2();
}
private function serviceResultHandler(event:ResultEvent) :void
{
CursorManager.removeBusyCursor();
_xmlData = XML(event.result);
arrDP = new ArrayCollection(mx.utils.ArrayUtil.toArray(_xmlData));
this.MydataGrid.visible = true;
}