2017-01-20 17 views
0

私は人間の画像部分とそのショーの症状をクリックするプロジェクトに取り組んでいます。これは私がjsonデータを完全に返すWebサービスを使用しています。私のWebサービスがありますコード:私は私のjqueryのコードはtable.HereにJSONデータを表示されていない画像をクリックするとtable.ButでJSONデータを結合するためにjqueryのDataTableのプラグインを使用jquery datatables pluginisはasp.net Webサービスでは動作しません

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)); 
     } 

は私のjQueryのコードです:

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);} 
     }); 
    } 

また、jsonデータを表に表示するためにこのjqueryを試しましたが、これは仕事:

お願いします。私のコードで何が間違っているのか教えてください。何か助けに感謝します。

+0

'success'要素の後に、' console.log(data) 'を追加して正しいデータを得ていることを確認し、何を得るのか教えてください。 – jonmrich

+0

@jonmrichありがとう.iちょうどこれをチェックしてください。これは** Uncaught ReferenceErrorを示しています:この行にはtoesが定義されていません**: 'data:{organ_name:toes}' どういう意味ですか? –

+1

@jonmrichはurのアドバイスに感謝しています...これは間違いでした。私がconsole.log(data)を使うと、私はそれを見つけます。私はつま先ではなく "つま先"を使用する必要があります。 –

答えて

0

data:{ organ_name: toes}の代わりにdata:{ organ_name: "toes"}を使用してください。 あなたのコードを慎重にチェックするか、私のような愚か者になるでしょう。

0

これが最善の方法であるかどうかわかりませんが、これは通常、jsonを返すWeb API呼び出しからデータテーブルを水和する方法です。

私は通常、行を保持する関数を作成します。

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の提案に感謝します。私もあなたの方法を試して、それも動作します。 –

関連する問題