2017-01-20 7 views
0

나는 인간의 이미지 부분과 그 show symptoms.For이 웹 서비스를 json 데이터를 완벽하게 반환하는 웹 서비스를 사용하는 프로젝트를 작업하고 있습니다. 내 웹 서비스가 있습니다. 코드 :jquery datatables pluginis asp.net 웹 서비스에서 작동하지 않습니다

if (e.key === 'toes'){ 
      $.ajax({ 
       url: "SympsService.asmx/GetSymptoms", 
       data:{ organ_name: toes}, 
       method: "post", 
       dataType: "json", 
       success: function (data){ 
        var Variable = $('#symptomsTable').DataTable({ 
         data: data, 
         columns: [ { 'data': 'Sympt' }] 
        }); 
       }, 
      error: function (error) 
      {console.log(error);} 
     }); 
    } 
: 난 내 jQuery 코드가 table.Here에 JSON 데이터를 표시되지 이미지를 클릭하면
public class SympsService : System.Web.Services.WebService 
{ 
    [WebMethod] 
    public void GetSymptoms(String organ_name) 
    { 
     List<symps> listSymptoms = new List<symps>(); 
     string CS=ConfigurationManager.ConnectionStrings["EhealtsCS"].ConnectionString; 
     using (SqlConnection con = new SqlConnection(CS)) 
     { 
      SqlCommand cmd = new SqlCommand("sendSymptoms", con); 
      cmd.CommandType = CommandType.StoredProcedure ; 
      SqlParameter parameter = new SqlParameter(); 
      parameter.ParameterName = "@organ"; 
      parameter.Value = organ_name; 
      cmd.Parameters.Add(parameter); con.Open(); 
      SqlDataReader rdr = cmd.ExecuteReader(); 
      while (rdr.Read()) 
      { 
       symps symp = new symps(); 
       symp.Sympt = rdr["SymptomsName"].ToString(); 
       listSymptoms.Add(symp); 

      } 
      JavaScriptSerializer js = new JavaScriptSerializer(); 
      Context.Response.Write(js.Serialize(listSymptoms)); 
     } 

내가이 table.But에서 JSON 데이터를 바인딩 JQuery와 datatables 플러그인을 사용하여 내 jQuery 코드입니다

또한 json 데이터를 테이블에 표시하기 위해이 jquery를 시도했지만 이것이 아닙니다. 작동 :

success: function (data) { 
        var symptomsTable = $('#symptomsTable tbody'); 
        symptomsTable.empty(); 
        $(data).each(function(index,symp) { 
         symptomsTable.append('<tr><td>' + symp.sympt + '</td></tr>'); 
        }); 
       } 

제발, 아무도 내 code.any 종류의 잘못이 무엇인지 말해 줄 수 있습니다 크게 도움이 될 것입니다.

+0

'success' 엘리먼트 뒤에'console.log (data)'를 추가하여 올바른 데이터를 얻었는지 확인하고 얻을 수있는 것을 알려줄 수 있습니까? – jonmrich

+0

@jonmrich 감사합니다. .. 이걸 확인해보십시오. ** Uncaught ReferenceError :이 줄에는 발가락이 정의되어 있지 않습니다 ** : 'data : {organ_name : toes}' 그게 무슨 뜻인지 말해 줄 수 있습니까? –

+1

@jonmrich가 ur advice에 감사드립니다 ... 이것은 실수였습니다. console.log (data)를 사용할 때 발견했습니다. 나는 발가락이 아니라 "발가락"을 사용해야합니다. –

답변

0

data:{ organ_name: toes} 대신 data:{ organ_name: "toes"}을 사용하십시오. 코드를주의 깊게 확인하십시오. 그렇지 않으면 나처럼 바보가 될 것입니다.

0

이것이 최선의 방법인지 확실하지 않지만, 이것이 대개 json을 반환하는 웹 API 호출에서 내 datatables를 수화하는 방법입니다.

나는 보통 내 행을 보관하는 기능을합니다.

function category(id, name, action) { 
    var self = this; 
    this.id = id; 
    this.name = name; 
    this.action = action; 
} 

function model() { 
    var self = this; 
    this.categories = []; 
} 

var mymodel = new model(); 

그런 다음 내 ajax 호출 onsuccess에서 배열로 행을 푸시합니다.

success: function (data){ 
        $.each(data, function(i, item) { 
        mymodel.categories.push(new category(item.id, item.category, item.action)); 
    }); 
    var table = $('#mytable').DataTable({ 
    data: mymodel.categories, 
    columns: [{ 
     data: 'id' 
     }, { 
     data: 'name' 
     }, { 
     data: 'action' 
     } 

    ], 
    dom: '<"toolbar">frtip' 

    }); 

       }, 
+0

@brayan ud 제안에 감사드립니다. 나는 또한 당신의 방법을 시도하고 그것도 작동합니다. –