
正文
Session版购物车+MVC局部刷新
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
效果图:


大致代码:
<script type="text/javascript">
$(function () {
LoadOrderDetailList();
});
function AddToOrderDetailInfo() {
$("#AddToOrderDetail").attr("disabled", true);
var form = $("#form_Create").serialize();
$.post("/Sample/AddToOrderDetail", form, function (msg, status) {
if (msg.Result == "OK") {
$("#hShipDate").val($("#ShipDate").val());
$("#ShipDate").attr("disabled", true);
$("#hReceiptDate").val($("#ReceiptDate").val());
$("#ReceiptDate").attr("disabled", true);
$("#TrackingNumber").attr("readonly", true);
$("#Note").attr("readonly", true);
$("#ProductName").val("");
$("#Qty").val("");
$("#dNote").val("");
AlertMsg("AddToOrderDetail", "success", msg.Message);
} else {
AlertMsg("AddToOrderDetail", "Failure", msg.Message);
}
$("#AddToOrderDetail").attr("disabled", false);
LoadOrderDetailList();
});
}
function LoadOrderDetailList() {
$("#tbOrderDetailsList tbody").load("/Sample/LoadOrderDetailList");
}
function RemoveOrderDetail(id) {
$.post("/Sample/RemoveOrderDetail", { id: id }, function (data) {
if (data == "empty") {
$("#ShipDate").attr("disabled", false);
$("#ReceiptDate").attr("disabled", false);
$("#TrackingNumber").attr("readonly", false);
$("#Note").attr("readonly", false);
}
LoadOrderDetailList();
});
}
function SaveAll() {
$("#SaveAll").attr("disabled", true);
var form = $("#form_Create").serialize();
$.post("/Sample/CreateSampleOrder", form,
function (msg) {
if (msg.Result == "OK") {
$("#ShipDate").attr("disabled", false);
$("#ReceiptDate").attr("disabled", false);
$("#TrackingNumber").attr("readonly", false);
$("#Note").attr("readonly", false);
$("#hShipDate").val("");
$("#ShipDate").val("");
$("#hReceiptDate").val("");
$("#ReceiptDate").val("");
$("#TrackingNumber").val("");
$("#Note").val(""); AlertMsg("SaveAll", "success", msg.Message);
} else{
AlertMsg("SaveAll", "Failure", msg.Message);
}
$("#SaveAll").attr("disabled", false);
LoadOrderDetailList();
});
}
</script>
JavaScript Code
@using System.Data;
@model DataTable
@if (Model != null)
{
if (Model.Rows.Count > 0)
{
foreach (DataRow item in Model.Rows)
{
<tr>
<td>
<a style="cursor:pointer" onclick="GetSampleOrderDetail('@item["ID"]')">Select</a>
</td>
<td>
@item["OrderNumber"]
</td>
<td>
@item["ProductName"]
</td>
<td>
@item["Qty"]
</td>
<td>
@item["Note"]
</td>
<td>
<a style="cursor:pointer" onclick="DelSampleOrderDetail('@item["ID"]','@item["OrderNumber"]')">Delete</a>
</td>
</tr>
}
}
}
_SampleOrderDetailList.cshtml
<form method="post" id="form_Create">
<div class="panel-body">
<div class="" id="order_Detail">
<div class="row">
<div class="row no-gutter mt5">
<div class="col-lg-4">
<span class="inline-any mt5">Issued By:</span></div>
<div class="col-lg-8">
<input type="text" class="form-control w200 mr10" value="@Session["Account"]" name="Issued" id="Issued"
readonly="readonly"></div>
</div>
<div class="row no-gutter mt5">
<div class="col-lg-4">
<span class="inline-any mt5">Ship Date:</span></div>
<div class="col-lg-8">
<input type="hidden" name="hShipDate" value="" id="hShipDate">
<input type="text" class="form-control w200" onfocus="WdatePicker({lang:'en',dateFmt:'yyyy-MM-dd',maxDate:'#F{$dp.$D(\'ReceiptDate\')}'})"
value="" id="ShipDate" name="ShipDate" realvalue="">
</div>
</div>
<div class="row no-gutter mt5">
<div class="col-lg-4">
<span class="inline-any mt5">Receipt Date:</span></div>
<div class="col-lg-8">
<input type="hidden" name="hReceiptDate" value="" id="hReceiptDate">
<input type="text" class="form-control w200" onfocus="WdatePicker({lang:'en',dateFmt:'yyyy-MM-dd',minDate:'#F{$dp.$D(\'ShipDate\')}'})"
value="" id="ReceiptDate" name="ReceiptDate" realvalue=""></div>
</div>
<div class="row no-gutter mt5">
<div class="col-lg-4">
<span class="inline-any mt5">Tracking Number:</span></div>
<div class="col-lg-8">
<input type="text" class="form-control w200 mr10" value="" name="TrackingNumber"
id="TrackingNumber">
</div>
</div>
<div class="row no-gutter mt5">
<div class="col-lg-4">
<span class="inline-any mt5">Sampl Order Note:</span></div>
<div class="col-lg-8">
<textarea class="w100p h100" id="Note" name="Note"></textarea>
</div>
</div>
<hr />
<div class="row no-gutter mt5">
<div class="col-lg-4">
<span class="inline-any mt5">Product Name:</span></div>
<div class="col-lg-8">
<input type="text" class="form-control w200 mr10" value="" name="ProductName" id="ProductName">
</div>
</div>
<div class="row no-gutter mt5">
<div class="col-lg-4">
<span class="inline-any mt5">Product Qty:</span></div>
<div class="col-lg-8">
<input type="text" class="form-control w200 mr10" value="" name="Qty" id="Qty">
</div>
</div>
<div class="row no-gutter mt5">
<div class="col-lg-4">
<span class="inline-any mt5">Sampl Order Detail Note:</span></div>
<div class="col-lg-8">
<textarea class="w100p h100" id="dNote" name="dNote"></textarea>
</div>
</div>
<div class="row no-gutter mt10">
</div>
<div class="row no-gutter mt20">
<div class="col-lg-4">
</div>
<div class="col-lg-8">
<input type="button" value="Add to" id="AddToOrderDetail" class="btn btn-primary"
onclick="AddToOrderDetailInfo();" />
</div>
</div>
</div>
</div>
</div>
</form> <table class="table table-bordered table-striped table-condensed table-hover fixheader"
id="tbOrderDetailsList" style="width: auto">
<thead>
<tr>
<th width="60">
Operate
</th>
<th width="50">
number
</th>
<th width="150">
Product Name
</th>
<th width="70">
Qty
</th>
<th width="300">
Note
</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
public ActionResult CreateSampleOrder(FormCollection form)
{
try
{
if (Session["OrderDetailList"] == null)
{
return Json(new { Result = "Error", Message = "No data!" });
}
string createby = form["Issued"] != null ? form["Issued"].ToString() : string.Empty;
if (createby.Trim() == string.Empty)
{
return Json(new { Result = "Error", Message = "Please login again!" });
}
string shipdate = form["ShipDate"] != null ? form["ShipDate"].ToString() : string.Empty;
string hshipdate = form["hShipDate"] != null ? form["hShipDate"].ToString() : string.Empty;
//if (shipdate.Trim() == string.Empty && hshipdate.Trim() == string.Empty)
//{
// return Json(new { Result = "Error", Message = "Ship date cannot be empty" });
//}
string receiptdate = form["ReceiptDate"] != null ? form["ReceiptDate"].ToString() : string.Empty;
string hreceiptdate = form["hReceiptDate"] != null ? form["hReceiptDate"].ToString() : string.Empty;
//if (receiptdate.Trim() == string.Empty && hreceiptdate.Trim() == string.Empty)
//{
// return Json(new { Result = "Error", Message = "Receipt date cannot be empty" });
//}
string trackingnumber = form["TrackingNumber"] != null ? form["TrackingNumber"].ToString() : string.Empty;
//if (trackingnumber.Trim() == string.Empty)
//{
// return Json(new { Result = "Error", Message = "Tracking number cannot be empty" });
//}
string note = form["Note"] != null ? form["Note"].ToString() : string.Empty;
string sql = "";
sql += @"INSERT INTO Sample_Order(ShipDate, ReceiptDate, TrackingNumber, Note, CreateDate, CreateBy)VALUES(@ShipDate, @ReceiptDate, @TrackingNumber, @Note, GETDATE(), @CreateBy);";
sql += @"UPDATE Sample_Order SET OrderNumber=@@IDENTITY WHERE ID=@@IDENTITY;";
sql += @"SELECT @@IDENTITY;";
SqlParameter[] pars = new SqlParameter[]
{
new SqlParameter("@ShipDate",IsEmptyToDBNull(hshipdate)),
new SqlParameter("@ReceiptDate",IsEmptyToDBNull(hreceiptdate)),
new SqlParameter("@TrackingNumber",trackingnumber),
new SqlParameter("@Note",note),
new SqlParameter("@CreateBy",createby)
};
int ordernumber = SQLHelper.ExecuteScalar(sql, pars);
List<OrderDetail> list = new List<OrderDetail>();
list = Session["OrderDetailList"] as List<OrderDetail>;
if (ordernumber > )
{
sql = "";
foreach (OrderDetail item in list)
{
sql += @"INSERT INTO Sample_OrderDetail(OrderNumber, ProductName, Qty, Note)VALUES(";
sql += "N'" + ordernumber + "',";
sql += "N'" + item.ProductName + "',";
sql += "N'" + item.Qty + "',";
sql += "N'" + item.Note + "'";
sql += @")
";
}
if (SQLHelper.ExecuteNonQuery(sql) > )
{
Session["OrderDetailList"] = null;
return Json(new { Result = "OK", Message = "Save all success!" });
}
else
{
return Json(new { Result = "Error", Message = "Save all failed" });
}
}
else
{
return Json(new { Result = "Error", Message = "Save all failed" });
}
}
catch (Exception ex)
{
return Json(new { Result = "Error", Message = ex.Message });
}
}
public ActionResult LoadOrderDetailList()
{
return PartialView("_SampleOrderDetailList");
}
public ActionResult AddToOrderDetail(FormCollection form)
{
try
{
string createby = form["Issued"] != null ? form["Issued"].ToString() : string.Empty;
if (createby.Trim() == string.Empty)
{
return Json(new { Result = "Error", Message = "Please login again!" });
}
string shipdate = form["ShipDate"] != null ? form["ShipDate"].ToString() : string.Empty;
string hshipdate = form["hShipDate"] != null ? form["hShipDate"].ToString() : string.Empty;
//if (shipdate.Trim() == string.Empty && hshipdate.Trim() == string.Empty)
//{
// return Json(new { Result = "Error", Message = "Ship date cannot be empty" });
//}
string receiptdate = form["ReceiptDate"] != null ? form["ReceiptDate"].ToString() : string.Empty;
string hreceiptdate = form["hReceiptDate"] != null ? form["hReceiptDate"].ToString() : string.Empty;
//if (receiptdate.Trim() == string.Empty && hreceiptdate.Trim() == string.Empty)
//{
// return Json(new { Result = "Error", Message = "Receipt date cannot be empty" });
//}
string trackingnumber = form["TrackingNumber"] != null ? form["TrackingNumber"].ToString() : string.Empty;
//if (trackingnumber.Trim() == string.Empty)
//{
// return Json(new { Result = "Error", Message = "Tracking number cannot be empty" });
//}
string note = form["Note"] != null ? form["Note"].ToString() : string.Empty;
string productname = form["ProductName"] != null ? form["ProductName"].ToString() : string.Empty;
if (productname.Trim() == string.Empty)
{
return Json(new { Result = "Error", Message = "Product name cannot be empty" });
}
string qty = form["Qty"] != null ? form["Qty"].ToString() : string.Empty;
if (qty.Trim() == string.Empty)
{
return Json(new { Result = "Error", Message = "Qty cannot be empty" });
}
string dnote = form["dNote"] != null ? form["dNote"].ToString() : string.Empty;
try
{
List<OrderDetail> list = new List<OrderDetail>();
if (Session["OrderDetailList"] != null)
{
list = Session["OrderDetailList"] as List<OrderDetail>;
}
OrderDetail entity = new OrderDetail();
entity.ProductName = productname;
entity.Qty = Convert.ToInt32(qty);
entity.Note = dnote;
list.Add(entity);
for (int i = ; i < list.Count; i++)
{
list[i].ID = i + ;
}
Session["OrderDetailList"] = list;
return Json(new { Result = "OK", Message = "OK" });
}
catch (Exception ex)
{
return Json(new { Result = "Error", Message = ex.Message });
}
}
catch (Exception ex)
{
return Json(new { Result = "Error", Message = ex.Message });
}
}
public string RemoveOrderDetail(int id)
{
if (id != )
{
List<OrderDetail> list = new List<OrderDetail>();
if (Session["OrderDetailList"] != null)
{
list = Session["OrderDetailList"] as List<OrderDetail>;
var item = list.Where(w => w.ID == id).FirstOrDefault();
if (item != null)
{
list.Remove(item);
if (list.Count > )
{
for (int i = ; i < list.Count; i++)
{
list[i].ID = i + ;
}
Session["OrderDetailList"] = list;
}
else
{
Session["OrderDetailList"] = null;
}
}
}
}
else
{
Session["OrderDetailList"] = null;
}
return Session["OrderDetailList"] == null ? "empty" : "have";
}
Controller Code
作者:长毛象
微博:http://weibo.com/5567742196/info
博客:http://www.cnblogs.com/xiangyisheng/
本文版权归作者和博客园共有,个人学习成果,请多多指教,欢迎转载,请保留原文链接







