json傳遞數組到一般處理程序頁,序列化為實體類的方法,可以解決.ENT framework 3.5以前的項目,
3.5以后的項目可以用System.ServiceModel.Web和System.Runtime.Serialization解決,當然也可以使用這種方案。
下面是代碼:
JS
function PurchaseAutonomy() { var r = 0; var parmArr = new Array(); $("#dataTb tbody tr").each(function () { var ch = $(this).children().eq(0).children().eq(0).attr("checked"); var num = $(this).children().eq(7).children().eq(0).val(); if (ch == true) { if (IsNum(num)) { return false; } else { parmArr[r] = { PRODUCT_ID: $(this).children().eq(1).text(), PRODUCT_NAME: $(this).children().eq(3).text(), ORG_ID: $(this).children().eq(0).children().eq(2).val(), JS_PRICE: $(this).children().eq(0).children().eq(4).val(), NOS_PRICE: $(this).children().eq(0).children().eq(3).val(), PRODUCT_PRICE: $(this).children().eq(0).children().eq(4).val(), PURCHASE_NUM: $(this).children().eq(7).children().eq(0).val() }; r++; } } }); if (r > 0) { $.MsgBox.Confirm("溫馨提示", "生成預訂單,確定繼續嗎?溫馨提示", function () { var a = parmArr; $.ajax({ type: "POST", url: "/DataServer/Purchase/PurchaseAdd.ashx", data: { parmArr: JSON.stringify(parmArr),user_id:<%=user_id%>,bm_id:<%=bm_id%> }, datatype:"json", contentType: "application/x-www-form-urlencoded; charset=utf-8", success: function (result) { if (result == "1") { $.MsgBox.Alert("提示", "生成采購計划成功!"); $("#dataTb tbody tr input[type='checkbox']").attr("checked",false); $("#dataTb tbody tr input[name='purchase_num']").val("0"); } else { $.MsgBox.Alert("提示", "生成采購計划失敗!"); return false; } } }); }); } else { $.MsgBox.Alert("提示", "請選擇要處理的記錄!"); return false; } }
ASHX 畫面:
引用:using Newtonsoft.Json;
接收數組字符串:
String parmArr = context.Request.Form["parmArr"];
序列化為實體類
List<ET_PURCHASE_ITEM> list = new List<ET_PURCHASE_ITEM>();
list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ET_PURCHASE_ITEM>>(parmArr);
實體類:
/// <summary> /// ET_PURCHASE_ITEM:實體類(屬性說明自動提取數據庫字段的描述信息) /// </summary> [Serializable] public partial class ET_PURCHASE_ITEM { public ET_PURCHASE_ITEM() { } #region Model private decimal? _org_id; private decimal? _product_id; private string _product_name; private decimal? _js_price; private decimal? _nos_price; private decimal? _purchase_num=0; private decimal? _product_price; /// <summary> /// /// </summary> public decimal? ORG_ID { set { _org_id = value; } get { return _org_id; } } /// <summary> /// /// </summary> public decimal? PRODUCT_ID { set { _product_id = value; } get { return _product_id; } } /// <summary> /// /// </summary> public string PRODUCT_NAME { set { _product_name = value; } get { return _product_name; } } /// <summary> /// /// </summary> public decimal? JS_PRICE { set { _js_price = value; } get { return _js_price; } } /// <summary> /// /// </summary> public decimal? NOS_PRICE { set { _nos_price = value; } get { return _nos_price; } } /// <summary> /// /// </summary> public decimal? PURCHASE_NUM { set { _purchase_num = value; } get { return _purchase_num; } } /// <summary> /// /// </summary> public decimal? PRODUCT_PRICE { set { _product_price = value; } get { return _product_price; } } #endregion Model }
Newtonsoft.Json.dll 下載地址
http://files.cnblogs.com/files/shuaichao/Newtonsoft.Json.rar
