asp.net 练习jsonp

来源:互联网 发布:dbc2000建不了数据库 编辑:程序博客网 时间:2024/05/18 03:30
<%@ 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 onclick="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"                            onclick="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="否" onclick="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格式


效果

处理订单提示


jquery api
http://www.css88.com/jqapi-1.6/#p=jQuery.ajax

原创粉丝点击