Web 上のサンプルから、1 行のデータ (SP から返された行) を取得し、JSON オブジェクト シリアライザーを使用してそれをクライアントの aspx JavaScript ページに送り返すコードをまとめています。データがどのように構築されているかを理解するには...
public static string GetLogEntry(DataTable table, string id)
{
JavaScriptSerializer jss = new JavaScriptSerializer();
List<Dictionary<string, object>> rows = new List<Dictionary<string, object>>();
Dictionary<string, object> row;
foreach (DataRow dr in table.Select("UID =" + id))
// foreach (DataRow dr in table.Rows)
{
row = new Dictionary<string, object>();
foreach (DataColumn col in table.Columns)
{
row.Add(col.ColumnName, dr[col]);
}
rows.Add(row);
}
var json = jss.Serialize(rows);
return json;
この特定の SP は単一の行を返すように設計されているため、ここに不要なループがあることを理解しています。これについては、次の章で説明します。私の本当の問題は、必要なデータを抽出する方法がわからないことです。
クライアント ループはデータを返していますが、特定の列データを個別に参照するのに苦労しています。
success: function (json) { //ajax call success function
var obj = jQuery.parseJSON(json); // this line isn't really doing anything right now
eval("var datax = " + json);
for (var propertyName in $(datax)[0]) {
alert('data: ' + propertyName ); } //this returns only the column names
$(data).each(function (key, val) {
for (var propertyName in val) {
alert('data: ' + val[propertyName]); }
だから私がしたいのは、他の例で見たように、列名で要素にアクセスすることです....
alert(json.columnName) //returns undefine.
お時間をいただきありがとうございます。