ajax回传一个json,jQuery AJAX To JSON Format 并回传方法

摘要:Jquery AJAX To Json 并回传的方法

最近完成一个 Case,以往都是用 PostBack 方式,之前已听过 JSON, 但没很了解,这几天花时间了解,花很久时间才搞定此 Function, 不过也从中了解 JSON 格式,回传方法,Collection Dictionary,也让自己又成长一步。

需求目的:当输入客户代号,随即回传,客户名称&业务负责人

参考网站有 :

http://www.itzhai.com/jquery-json-format-to-use-ajax-to-get-the-data.html

http://www.dotblogs.com.tw/hatelove/archive/2011/11/22/jquery-ajax-aspx-json.aspx

http://www.dotblogs.com.tw/hatelove/archive/2009/12/22/jqueryajax.aspx

http://code2study.blogspot.tw/search/label/C%23%20%E6%90%9C%E5%B0%8B%E6%AF%94%E5%B0%8D

1. 准备 Asp.net 页面档 (传入值&并回传)

$j('#ftcFormHolder_FpgForm_ucuxText05').blur(function (e) { // 客户代号

$(this).val($(this).val().toUpperCase()); // 客户代号转大写

$j('#ftcFormHolder_FpgForm_ucuxText06').val(''); // 清空[客户名称]字段

// 若[ID]字段为空

if ($j(this).val() == '') {

return;

}

try {

var paramJSON = '{ "ID": "' + $j(this).val() + '"}'; // Request JSON

// alert (paramJSON);

// ajax

$j.ajax({

type: 'POST',

url: '../CustomActions/UserService.asmx/GetUserJSON',

contentType: "application/json; charset=utf-8",

data: paramJSON,

dataType: 'json',

async: false,

success: function (response, textStatus) { // .asmx 回传值

jsonData = response;

if ((typeof response) != 'string') {

if (response.d != null) // 若不为空

jsonData = response.d;

}

// alert(typeof(jsonData));

// var obj = jQuery.parseJSON(jsonData); // Function Parse Above jQuery 1.8

// alert(obj.HumanName);

var obj = jQuery.parseJSON(jsonData); // Function Parse Above jQuery 1.8

// alert (jsonData);

$j('#ftcFormHolder_FpgForm_ucuxText04').val(obj.Sales); //业务负责人

$j('#ftcFormHolder_FpgForm_ucuxText06').val(obj.CUNAME); //客户名称

},

error: function (XMLHttpRequest, textStatus, errorThrown) {

alert("ajax error (" + textStatus + ")." + "n" + errorThrown);

}

});

} catch (e) {

alert("无此家客户 Error !!");

// alert(e.message + " 无此家客户 Error !!");

}

});

2. 建立一个 UserService.asmx 档 接收值处理

///

/// UserService 的摘要描述

///

[WebService(Namespace = "http://domainname/")]

[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

//[ToolboxItem(false)]

[System.Web.Script.Services.ScriptService]

public class UserService : System.Web.Services.WebService

{

[System.Web.Services.WebMethod]

[System.Web.Script.Services.ScriptMethod(ResponseFormat = System.Web.Script.Services.ResponseFormat.Json)]

public string GetUserJSON(string ID)

{

//Fpg.Workflow.Data.LogCentral.CurrentLogger.LogDebug("UserService.GetUserJSON(" + ID + ")");

//m_oDbHelper = new Fpg.Workflow.Data.DbHelper();

Dictionary oHtable = this.GetUserInfo(ID); // 取得使用者数据

string szRtnJSON = this.ToJSON(oHtable); // 回传JSON字符串

return szRtnJSON;

}

//[System.Web.Services.WebMethod(EnableSession = true)]

//[System.Web.Script.Services.ScriptMethod()]

//public string GetUserName(string ID)

//{

// //Fpg.Workflow.Data.LogCentral.CurrentLogger.LogDebug("UserService.GetUserName(" + ID + ")");

// //m_oDbHelper = new Fpg.Workflow.Data.DbHelper();

// Dictionary oHtable = this.GetUserInfo(ID); // 取得使用者数据

// string szHumanName = string.Empty;

// if (oHtable != null && oHtable.ContainsKey("HumanName"))

// szHumanName = (string)oHtable["HumanName"];

// return szHumanName;

//}

private Dictionary GetUserInfo(string p_szCuId)

{

if (string.IsNullOrEmpty(p_szCuId))

return null;

IDataReader oReader = null;

InitConn();

DbCommand oCmd = this.m_oConn.CreateCommand();

Dictionary oUserInfo = new Dictionary();

try

{

oCmd.CommandType = CommandType.Text;

oCmd.CommandText = string.Format("select CUNAME,Item16 from Matek_closeitems where CUID = '{0}'", p_szCuId);

oReader = oCmd.ExecuteReader();

while (oReader.Read())

{

//int iFieldCount = oReader.FieldCount;

//for (int i = 0; i < iFieldCount; i++)

{

oUserInfo.Add("CUNAME", oReader.GetValue(0).ToString());

oUserInfo.Add("Sales", oReader.GetValue(1).ToString());

//oUserInfo.Add("CUNAME", "xx科技");

//oUserInfo.Add("Sales", "王大明");

}

}

return oUserInfo;

}

finally

{

oReader.Dispose();

oReader.Close();

oCmd.Dispose();

this.CloseConn();

}

}

// 转成 Json 格式 Example : { "CUNAME":"xx科技","Sales":"王大明" };

private string ToJSON(Dictionary p_oHtable)

{

if (p_oHtable == null || p_oHtable.Count == 0)

return string.Empty;

System.Text.StringBuilder oJSON = new System.Text.StringBuilder();

oJSON.Append("{ ");

int iIndex = 0;

foreach (string szKey in p_oHtable.Keys)

{

if (iIndex > 0)

oJSON.Append(", ");

oJSON.AppendFormat(""{0}":", szKey);

object oValue = p_oHtable[szKey];

if (oValue == null)

oJSON.Append("null");

else if (oValue is Boolean)

oJSON.Append(oValue.ToString().ToLower());

else if (oValue is Int32)

oJSON.Append(oValue.ToString());

else if (oValue is Double)

oJSON.Append(oValue.ToString());

else

oJSON.AppendFormat(""{0}"", oValue.ToString());

iIndex++;

}

oJSON.Append(" }");

return oJSON.ToString();

}

#region conn

Fpg.Workflow.Data.Db.DbFactory m_oDbfact = null;

Fpg.Workflow.Data.Db.DbConnection m_oConn = null;

private void InitConn()

{

if (m_oConn != null)

{

return;

}

if (m_oDbfact == null)

{

m_oDbfact = Fpg.Workflow.Data.Db.DbFactory.Instance();

}

m_oConn = m_oDbfact.CreateConnection();

m_oConn.Open();

}

private void InitConn(string p_szConnName)

{

if (m_oConn != null)

return;

Fpg.Workflow.Data.ConnInfo oConnInfo = new Fpg.Workflow.Data.ConnInfo(p_szConnName);

m_oConn = oConnInfo.GetConnection();

m_oConn.Open();

}

private void CloseConn()

{

try

{

if (m_oConn != null)

{

m_oConn.Close();

m_oConn = null;

}

}

catch { }

}

#endregion,>,>,>,>,>,>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值