2014-09-30 23 views
1

我試圖在頁面加載後使用web方法加載HTML塊。以下代碼正在返回一個對象,但它不會在成功時附加到返回的HTML到div「選項卡」。下面的「Callerdt」變量是從數據庫加載的數據表。任何想法爲什麼它不會將HTML追加到div標籤?你認爲傳遞的HTML字符串太大了嗎?如果您需要更多信息並提前致謝,請告訴我。jquery AJAX不會顯示返回的HTML asp.net

<script type="text/javascript"> 
    $(document).ready(function() { 
     var p = document.getElementById('pn').value, u = document.getElementById('user').value, er = document.getElementById('error').value; 

     if (!(er == "true" && u == "false" && p == "false")) { 
      $.ajax({ 
       type: "POST", 
       url: 'CallerPopup.aspx/LoadPatients', 
       data: JSON.stringify({ phone: p, user: u }), 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: function (data) { 
        alert(data); 
        $('#tabs').append(data); 
       } 
      }); 
     } 
    }); 
</script> 

 [WebMethod] 
     public static string LoadPatients(string phone, string user) 
     { 
      var ret = "No Patients Found"; 
... 
       //generate html to display patient details 
       var sb = new StringBuilder(); 
       string addr = ""; 
       for (int x = 0; x < Callerdt.Rows.Count; x++) 
       { 
        addr = Callerdt.Rows[x]["Street"].ToString() + " " + Callerdt.Rows[x]["city"].ToString() + ", " + Callerdt.Rows[x]["State"].ToString() + " " + Callerdt.Rows[x]["ZipCode"].ToString(); 
        sb.AppendFormat("<div class='tabs'><table>" + 
            "<tr><td class='title'><label>Name:</label></td><td>{0}</td></tr>" + 
            "<tr><td><label>DOB:</label></td><td>{1}</td></tr>" + 
            "<tr><td><label>Address:</label></td><td>{2}</td></tr>" + 
            "<tr><td><label>SSN:</label></td><td>{3}</td></tr>" + 
            "<tr><td><label>Z Number:</label></td><td>{4}</td></tr>" + 
            "</table></div><br/>", Callerdt.Rows[x]["Name"].ToString(), Callerdt.Rows[x]["DOB"].ToString(), addr, Callerdt.Rows[x]["SSN"].ToString(), Callerdt.Rows[x]["ZNUM"].ToString()); 
       } 
       ret = sb.ToString(); 
      } 
      return ret; 
     } 
+1

你返回的數據類型是錯誤的,更改數據類型爲html的 – Marko 2014-09-30 18:49:08

+0

變化數據類型:「JSON」以數據類型:「HTML」 – tsuensiu 2014-09-30 18:54:47

回答

0

感謝您的答覆。我終於設法通過執行以下操作來實現它。我注意到在chrome中調試時,有一個json對象被返回,稱爲'd'。所以我嘗試了以下,現在它工作得很好!

<script type="text/javascript"> 
    $(document).ready(function() { 
     var p = document.getElementById('pn').value, u = document.getElementById('user').value, er = document.getElementById('error').value, un = document.getElementById('usernum').value; 
     if (!(er == "true")) { 
      $("#loading").show() 
      $.ajax({ 
       type: "POST", 
       url: 'CallerPopup.aspx/LoadPatients', 
       data: JSON.stringify({ phone: p, user: u, usernum: un }), 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: function (data) { 
        $('#tabs').append(data.d); 
       }, 
       complete: function() { 
        $("#loading").hide(); 
       } 
      }); 
     } 
    }); 
</script> 
0

使用此

$.ajax({ 
       type: "POST", 
       url: 'CallerPopup.aspx/LoadPatients', 
       data: JSON.stringify({ phone: p, user: u }), 
       dataType: "html", 
       success: function (data) { 
        alert(data); 
        $('#tabs').append(data); 
       } 
      }); 
+0

我想這並越來越怪異的結果。出於某種原因,而不是隻是去webmethod,它是重做page_load並導致無限循環,因爲ajax調用在$ .ready – dave 2014-10-01 12:05:30

+0

你可以給我你的迴應? – 2014-10-01 12:20:53