ajax object array 사용 방법
비동기 방식으로 닷넷에서는 깜빡임 없이 사용하는 구현 방법으로 제일 많이 사용하는 방법이 바로 Ajax라고 해도 틀린말이 아닙니다. 물로 Java에서도 그렇구요. 웹에서는 Ajax와 Jquery이 클라이언트 언어에서 대부분을 차지하니까요...ㅎ
Ajax의 사용법에 관해서는 여러 포스팅에서 알아보았는데요. 오늘은 Ajax 통신을 할 때 변수를 Ojbect Array를 이용해서 넘기고 받는 방법인 ajax object array 사용 방법에 대해서 알아보겠습니다.
먼저 .aspx쪽의 자바스크립트는 아래와 같이 작성 하시면 됩니다.
- javascript -
// parameter array
var items = [
{ Param1: "1", Param2: "2", Param3: "3" },
{ Param1: "4", Param2: "5", Param3: "6" },
];
var options = {
type: "POST",
url: window.location.pathname + "/Ajax_Method",
data: "{'items':" + JSON.stringify(items) + "}", // array to string fixes it *
contentType: "application/json; charset=utf-8",
dataType: "json",
async: false,
success: function (response) {
var parsed = $.parseJSON(response.d);
if (parsed != null) {
$.each(parsed, function (i, jsonData) {
alert(jsonData.Result1);
alert(jsonData.Result1);
});
}
},
error: function (msg) { alert(msg.d); }
};
jQuery.ajax(options);
* Ajax 통신을 이용해서 item을 Array의 형태로 만든것에 주의해서 보시면 됩니다.
다음으로 .net의 백단인 .aspx.cs쪽에서의 소스코드는 아래와 같습니다.
- cs -
[System.Web.Services.WebMethod]
public static string Ajax_Method(object items)
{
string result = string.Empty;
// 리스트 형식
List<object> lstItems = new JavaScriptSerializer().ConvertToType<List<object>>(items);
for (int i = 0; i < lstItems.Count; i++)
{
Biz.FW.FWXmlAutoBiz oBiz = null;
Hashtable ht = new Hashtable();
DataSet dsData = null;
foreach (KeyValuePair<string, object> kvp in (IEnumerable)lstItems[i])
{
ht.Add(kvp.Key, kvp.Value.ToString());
}
ht.Add("Param4", "N"); // 프로시저로 넘길 변수 추가
oBiz = new Biz.FW.FWXmlAutoBiz();
dsData = oBiz.XmlGetData("프로시저명", ht); // 프로시저 호출
if (dsData != null && dsData.Tables.Count > 0 && dsData.Tables[0].Rows.Count > 0)
{
var list = new List<Dictionary<string, object>>();
foreach (DataRow row in dsData.Tables[0].Rows)
{
var dict = new Dictionary<string, object>();
foreach (DataColumn col in dsData.Tables[0].Columns)
{
dict[col.ColumnName] = (Convert.ToString(row[col]));
}
list.Add(dict);
}
JavaScriptSerializer serializer = new JavaScriptSerializer();
result = serializer.Serialize(list);
}
}
return result;
}
* 여기서 배열 형태로 넘어온 파라메터를 List<object> 형태로 받아서 for문을 이용해 루프를 돌면서 프로시저를 실행하는 부분을 주의해서 보시면 됩니다.
이상으로 ajax object array 사용 방법에 대해서 알아보았습니다.
요거 하나면 앞에서 포스팅한 방법들은 사용 안하실것 같네요...ㅠ
그럼 오늘도 행복한 하루되시길 바랍니다.
끝까지 읽어주셔서 감사합니다.^^
Ajax의 사용법에 관해서는 여러 포스팅에서 알아보았는데요. 오늘은 Ajax 통신을 할 때 변수를 Ojbect Array를 이용해서 넘기고 받는 방법인 ajax object array 사용 방법에 대해서 알아보겠습니다.
먼저 .aspx쪽의 자바스크립트는 아래와 같이 작성 하시면 됩니다.
- javascript -
// parameter array
var items = [
{ Param1: "1", Param2: "2", Param3: "3" },
{ Param1: "4", Param2: "5", Param3: "6" },
];
var options = {
type: "POST",
url: window.location.pathname + "/Ajax_Method",
data: "{'items':" + JSON.stringify(items) + "}", // array to string fixes it *
contentType: "application/json; charset=utf-8",
dataType: "json",
async: false,
success: function (response) {
var parsed = $.parseJSON(response.d);
if (parsed != null) {
$.each(parsed, function (i, jsonData) {
alert(jsonData.Result1);
alert(jsonData.Result1);
});
}
},
error: function (msg) { alert(msg.d); }
};
jQuery.ajax(options);
* Ajax 통신을 이용해서 item을 Array의 형태로 만든것에 주의해서 보시면 됩니다.
다음으로 .net의 백단인 .aspx.cs쪽에서의 소스코드는 아래와 같습니다.
- cs -
[System.Web.Services.WebMethod]
public static string Ajax_Method(object items)
{
string result = string.Empty;
// 리스트 형식
List<object> lstItems = new JavaScriptSerializer().ConvertToType<List<object>>(items);
for (int i = 0; i < lstItems.Count; i++)
{
Biz.FW.FWXmlAutoBiz oBiz = null;
Hashtable ht = new Hashtable();
DataSet dsData = null;
foreach (KeyValuePair<string, object> kvp in (IEnumerable)lstItems[i])
{
ht.Add(kvp.Key, kvp.Value.ToString());
}
ht.Add("Param4", "N"); // 프로시저로 넘길 변수 추가
oBiz = new Biz.FW.FWXmlAutoBiz();
dsData = oBiz.XmlGetData("프로시저명", ht); // 프로시저 호출
if (dsData != null && dsData.Tables.Count > 0 && dsData.Tables[0].Rows.Count > 0)
{
var list = new List<Dictionary<string, object>>();
foreach (DataRow row in dsData.Tables[0].Rows)
{
var dict = new Dictionary<string, object>();
foreach (DataColumn col in dsData.Tables[0].Columns)
{
dict[col.ColumnName] = (Convert.ToString(row[col]));
}
list.Add(dict);
}
JavaScriptSerializer serializer = new JavaScriptSerializer();
result = serializer.Serialize(list);
}
}
return result;
}
* 여기서 배열 형태로 넘어온 파라메터를 List<object> 형태로 받아서 for문을 이용해 루프를 돌면서 프로시저를 실행하는 부분을 주의해서 보시면 됩니다.
이상으로 ajax object array 사용 방법에 대해서 알아보았습니다.
요거 하나면 앞에서 포스팅한 방법들은 사용 안하실것 같네요...ㅠ
그럼 오늘도 행복한 하루되시길 바랍니다.
끝까지 읽어주셔서 감사합니다.^^
댓글
댓글 쓰기