2016-08-17 5 views
-1

ページが完全に読み込まれた後にGetAllProperties()関数を呼び出す代わりに、ページ読み込み中にGetAllProperties()関数を呼び出す必要があります。ページロード時にAJAX関数を呼び出す方法

私は試しましたwindow.onload = GetAllProperties;それは動作しませんでしたが、私のコードは次のようになり

<script type="text/javascript"> 

window.onload = GetAllProperties; 


    function GetAllProperties() {  
     $.ajax({ 
      cache: false, 
      url: '/Home/GetAllProperties', 
      type: 'GET', 
      contentType: "application/json; charset=utf-8", 
      success: function (response) { 
       if (response.list.length > 0) { 
        console.log(response.list) 
        var $data = $('<table id="mytable" class="table table-striped"> </table>'); 
        var header = "<thead><tr><th>Property Name</th><th>Edit</th></tr></thead>"; 
        $data.append(header); 
        $.each(response.list, function (i, row) { 
         var $row = $('<tr/>'); 
         $row.append($('<td/>').html(row.PropertyName)); 
         $hidden = $(' <input type="hidden" name="hid" value= "' + row.PropertyId + '">'); 
         $row.append($hidden); 
         $editButton = $("<button class='editbtn' id='mybtn'>Edit</button>");  
         $row.append($editButton); 
         $deleteButton = $("<button class='deletebtn' id='delbtn'>Delete</button>");  
         $row.append($deleteButton); 
         $data.append($row); 
        });   
        $("#MyDiv").empty(); 
        $("#MyDiv").append($data); 
       } 
       else { 

       } 
      }, 
      error: function (r) { 
       alert('Error! Please try again.' + r.responseText); 
       console.log(r);  
      } 
     });  
    }  
</script> 
+0

この質問は、あなたが以前に尋ねたものと同じです。質問に詳細を追加するには、 'edit'ボタンを使います。また、コードがうまく動作しているように見えることに注意してください。それがあなたの要件を満たしていない場合は、なぜ*なぜ* –

答えて

1

あなたは既にjQueryのを使用して、なぜそれをwindowにイベントリスナーをバインドされていませんか?

$(window).on("load", GetAllProperties); 
 

 
function GetAllProperties() { 
 
    alert("loaded"); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
しかし、それもせずに働いている:

window.onload = GetAllProperties; 
 

 
function GetAllProperties() { 
 
    alert("loaded"); 
 
}

+0

あなたの助けてくれてありがとう...しかし、なぜページが読み込まれた後にテーブルが読み込まれるのか説明してください? – Lucy

+0

Ajaxは非同期であることは知っていますか?これは、関数が実行されている間、ページがロードされ続けることを意味します。 Ajaxリクエストが完了する前にページのロードが完了している可能性があります。 @ルーシー – eisbehr

+0

いいえ、私は..それは良いコードを書くのが良いだろう – Lucy

関連する問題