<%@ WebHandler Language="C#" Class="ValidationOrderCount" %>
using System;
using System.Web;
using BLL.BLL0001;
using System.Data;
using System.Text;
/*
*创建人:谈勇
*时间:2012-10-10
*重复订单校验
*/
public class ValidationOrderCount : IHttpHandler {
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/plain";
int userId = context.Request["suserId"] == null ? 0 : int.Parse(context.Request["suserId"].ToString());
int productId = context.Request["sproductId"] == null ? 0 : int.Parse(context.Request["sproductId"].ToString());
string key = context.Request["orderJsonData"];
StringBuilder strJsonData = new StringBuilder();//拼接json所有格式
StringBuilder strJsonMsgData = new StringBuilder();//拼接json内容
A001 a001 = A001.Instance();
DataTable dt = a001.GetOrderNumberByPhone(userId, productId);
if (dt.Rows.Count > 0)
{
string orderCode = dt.Rows[0]["OrderCode"].ToString();
string orderId = dt.Rows[0]["id"].ToString();
strJsonData.AppendFormat("{0}([", key);//json begin
strJsonMsgData.Append("{\"jorderCode\"" + ":" + "\"" + orderCode + "\"" + ",\"jorderId\"" + ":" + "\"" + orderId
+ "\"}" + ",");
strJsonData.Append(strJsonMsgData.ToString().TrimEnd(','));
strJsonData.Append("])");//json end
context.Response.Write(strJsonData.ToString());
}
else
{
strJsonData.AppendFormat("{0}([", key);//json begin
strJsonData.Append("])");//json end
context.Response.Write(strJsonData.ToString());
}
}
public bool IsReusable {
get {
return false;
}
}
}
<script type="text/javascript">
//重复订单脚本 谈勇 2012-10-11
function ValidationOrder(userId, productId) {
$.ajax({
url: '../Ashx/ValidationOrderCount.ashx?suserId=' + userId + '&sproductId=' + productId,
dataType: "jsonp",
type: "GET",
async: true,
jsonp: "orderJsonData", //callback的function名称
success: function(data) {
if (data.length == 0) {
openNewOrderPage(userId, productId);
}
else{
$.each(data, function(index, entry) {
var orderCode = entry['jorderCode']; //订单编号
var orderId = entry['jorderId']; // 订单id
var phtml = '';
phtml += '您已预订过相同线路出发的订单,订单号为' + orderCode + '<font id="fontOrderCode" style="font-size: 12px;"></font>(<a οnclick="openEditOrderPage(' + orderId + ')"';
phtml += ' style="color: blue; text-decoration: underline;cursor:pointer;">查看</a>),是否确认重复下单?';
$("#pMsg1").html(phtml);
//是按钮添加onclick事件
$("#btnGoOn").unbind().bind("click",function() {
openNewOrderPage(userId, productId);
})
});
editWidget2('#dv_Repeat', 200, 400);
}
},
error: function() {
alert("err");
}
});
};
function openEditOrderPage(orderID) {//跳到订单编辑页
window.open('../ordertrip/Order003.aspx?id=' + orderID + '&rand=' + Math.random() + '');
}
function openNewOrderPage(userId, productId) {//跳到订单新增页
$("#dv_Repeat").hide(); //关闭层
$("#JS-layer").remove(); //移除笼罩
window.open('../ordertrip/Order002.aspx?offline=0&uid=' + userId + '&pid=' + productId + '');
}
</script>
如果 在each 循环注册 onclick 事件 要 解绑 重新绑定,如果不解绑,重绑 你会发现,在table 表格中的按钮 点击事件 很多都是无用的.
$("#btnGoOn").unbind().bind("click",function() { })
<div class="login_pay_dh" id="dv_Repeat" style="display: none;">
<div class="login_paybg_dh">
<div class="login_tit_dh">
<h1>
温馨提示</h1>
<img alt="关闭" src="http://www.csdn.com/content/reg/image/pwd/login_closebtn_dh.jpg"
οnclick="closeEditorDiv(this,'#dv_Repeat');" style="cursor: pointer;" />
</div>
<div class="login_input_dh margin_right_dh">
<div class="P1_dh">
<p id="pMsg1" style="font-size: 12px; line-height: 22px;">
</p>
</div>
<div class="P2_dh">
<input name="btnGoOn" id="btnGoOn" type="button" value="是" style="cursor: pointer;" />
<input name="btnCancel" id="btnCancel" type="button" value="否" οnclick="closeEditorDiv(this,'#dv_Repeat');" style="cursor: pointer;" />
</div>
</div>
</div>
</div>
看下我的请求 的地址
http://www.csdn.com:8008/Ashx/ValidationOrderCount.ashx?suserId=316892&sproductId=54448&orderJsonData=jsonp1350363953620&_=1350363955298
orderJsonData=jsonp1350363953620&_=1350363955298 拿到这节callback
jsonp格式
效果
处理订单提示