0
加載後有任何方法對下表進行排序嗎? 在服務調用後按列排序
我使用谷歌API來獲取distancematrix,但我想表由距離進行排序。但是,這必須在完成對Google的服務呼叫後完成。
服務完成後,我將使用加載圖標,然後在完成後顯示錶格。
HTML:
<table class="table">
@foreach (var item in Model.res)
{
<tr>
<td class="nameWidth">› <a href="@Url.Action("resDetails", "FindLocation", new { id = @item.Id }, null)"><b>@item.Name</b></a></td>
<td style="width: 24%">
<div data-name="@item.Name" data-address="@item.Address @item.City" class="distance">
Loading...
</div>
</td>
<td><a class="takeMeThere" id="mapButton" onclick="findDirections('@item.Address @item.City')">KART</a></td>
</tr>
}
</table>
<script>
calculateDistance();
function calculateDistance()
{
$(".distance").each(function()
{
var name = $(this).data("name");
var adr = $(this).data("address");
if (name != null && adr != null)
getDistance(adr, name, $(this));
});
}
function getDistance(address, name, obj)
{
var origin = new google.maps.LatLng(userLat, userLong);
if (userLat == 0 || userLong == 0) console.log("Klarte ikke hente din posisjon");
var service = new google.maps.DistanceMatrixService();
service.getDistanceMatrix(
{
origins: [origin],
destinations: [address],
travelMode: google.maps.TravelMode.DRIVING,
avoidHighways: false,
avoidTolls: false
}, function (response, status)
{
var distance = response.rows[0].elements[0].distance;
if (distance) obj.html(distance.text);
else obj.html("Ikke funnet");
});
}
</script>