2017-07-09 12 views
1

に私はAJAXを使用してGridViewのをバインドしたい場合に報告しました。だから、私はAJAXとサーバー側のコードをWebメソッドとして使用してクライアントサイドコードを作成しました。を「未定義」AJAXを使用して、バインドGridViewのは、C#

すべてがさえ、私はそれが警告に未定義表示されていることをデータは示しているが、ループ内で、私は本当に混乱しても、その時点で成功する方法でデータを警告正常に動作しています。だからこそ、グリッドは縛られないのです。ここ

は、自分のコードすべて

ExecuteScalarクエリを実行し、返された結果セット内の最初の行の最初の列を返すの

$.ajax({ 
    type: "POST", 
    url: "schoolregistration.aspx/GetGridData", 
    contentType: "application/json; charset=utf-8", 
    datatype: "json", 
    success: function (data) { 
     for (var i = 0; i < data.d.length; i++) { 
      $("#grid_schooldata").append("<tr><td>" + data.d[i].schoolName); 
     } 
    }, 
    failure: function() { 
     alert("error! try again..."); 
    } 
}); 

 

using (var con = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString)) 
using (var cmd = new SqlCommand("select schoolname as [School Name] from tbl_schoolregistration", con)) 
{ 
    con.Open(); 
    object val = cmd.ExecuteScalar(); 
    return val == DBNull.Value ? "" : (string)val; 
} 
+0

あなたが使用することができ、形式を確認するために、あなたが受けているデータのJSON形式の例を追加します。にconsole.log(データ);またはconsole.log(JSON.stringify(data)); jsonを文字列として取得する。 –

+0

このコードから、あなたはどのタイプの例を望んでいるのですか? –

答えて

0

最初のものですクエリ。追加の列または行は無視されます。あなたは、単一のstringを持つことになります。この場合

は第二schoolnameない[School Name]としてそれを残して、クエリ内の名前には注意してください。

次に、オブジェクトをループするために、Serializeをjsonに、parseをjsonに戻す必要があります。ここで

は完全にコードを作業している:

$.ajax({ 
    type: "POST", 
    url: "schoolregistration.aspx/GetGridData", 
    contentType: "application/json; charset=utf-8", 
    datatype: "json", 
    success: function (data) { 
     data = JSON.parse(data.d); 
     for (var i = 0; i < data.length; i++) { 
      $("#grid_schooldata").append("<tr><td>" + data[i].schoolname +"</td></tr>");  
     } 
    }, 
    failure: function() { 
     alert("error! try again..."); 
    } 
}); 



[WebMethod] 
public static string GetGridData() 
{ 
    using (var con = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString)) 
    using (var cmd = new SqlCommand("select schoolname from tbl_schoolregistration", con)) 
    { 
     con.Open(); 
     //object val = cmd.ExecuteScalar(); 
     SqlDataAdapter adp = new SqlDataAdapter(cmd); 
     DataTable dt = new DataTable(); 
     adp.Fill(dt); // fills data from select query 

     // return val == DBNull.Value ? "" : (string)val; 
     return JsonConvert.SerializeObject(dt); 
    } 
} 
+0

いいえ、それは動作していません....インパクトアラートもループの下に来ていない...... –

関連する問題