JQuery从通用处理程序中检索多个值

在Google上搜索并阅读文档后,我很困惑它是如何工作的。当调用具有值的通用处理程序并成功返回多个值时。你如何循环访问数据库中的记录?你是循环遍历通用处理程序的记录,还是通过JQuery的每个函数成功执行?以下是当前的代码,当存在多个值时不起作用。删除$。每个(VARDATA,函数()和它的作品;但是,只有一条记录显示JQuery从通用处理程序中检索多个值

这是该数据应如何照顾你在伊利在文本框中键入并单击按钮

Business Profile ID: 8 

Business Name: The Boston Store

Phone Number: 814-455-1478

E-Mail: [email protected]

Business Profile ID: 9

Business Name: Sam The Man Pizza

Phone Number: 814-868-3809

E-Mail: [email protected]

jQuery脚本

$(document).ready(function() { 

$('#button').click(function() {

$.ajax({

contentType: "text/html; charset=utf-8",

data: "ID=" + $('#businessSelect').val(),

url: "getTest.ashx",

dataType: "text",

success: function (data) {

var vardata = JSON.parse(data);

$.each(vardata, function (index, value) {

$("#BusProfileID").html(value.BusProfileID);

$("#BusinessName").html(value.BusinessName);

$("#BusinessPhone").html(value.BusinessPhone);

$("#BusinessEmail").html(value.BusinessEmail);

});

}

})

});

});

ashx的处理程序页面

 public void ProcessRequest(HttpContext context) 

{

context.Response.ContentType = "text/html";

string ID = context.Request.QueryString["ID"];

SqlConnection conn;

SqlCommand comm;

SqlDataReader reader;

string connectionString = ConfigurationManager.ConnectionStrings["Conn"].ConnectionString;

conn = new SqlConnection(connectionString);

comm = new SqlCommand("SELECT BusProfileID, BusinessName, BusinessPhone, BusinessEmail FROM [BusProfile] WHERE BusinessCity = @BusinessCity", conn);

comm.Parameters.Add("@BusinessCity", System.Data.SqlDbType.VarChar);

comm.Parameters["@BusinessCity"].Value = ID;

try

{

conn.Open();

reader = comm.ExecuteReader();

List<BusinessData> objList = new List<BusinessData>();

BusinessData objData;

while (reader.Read())

{

objData = new BusinessData();

objData.BusProfileID = reader["BusProfileID"].ToString();

objData.BusinessName = reader["BusinessName"].ToString();

objData.BusinessPhone = reader["BusinessPhone"].ToString();

objData.BusinessEmail = reader["BusinessEmail"].ToString();

objList.Add(objData);

context.Response.Write(JsonConvert.SerializeObject(objList));

}

reader.Close();

}

finally

{

conn.Close();

}

}

public class BusinessData

{

public string BusProfileID { get; set; }

public string BusinessName { get; set; }

public string BusinessPhone { get; set; }

public string BusinessEmail { get; set; }

}

public bool IsReusable

{

get

{

return false;

}

}

}

aspx页面

  <div class="row"> 

<div class="columns medium-12">

<div class="row">

<div class="medium-6 columns medium-centered">

<label style="font-size:1em">Select City:</label>

<input type="text" id="businessSelect" style="height:2em;" /> <input type="button" id="button" value="Click me" />

</div>

</div>

<div class="row">

<div class="medium-6 columns medium-centered">

<label style="font-size:1em">Business Profile ID:</label>

<label id="BusProfileID" style="font-size:1em;"></label>

</div>

</div>

<div class="row">

<div class="medium-6 columns medium-centered">

<label style="font-size:1em">Business Name:</label>

<label id="BusinessName" style="font-size:1em;"></label>

</div>

</div>

<div class="row">

<div class="medium-6 columns medium-centered">

<label style="font-size:1em">Phone Number:</label>

<label id="BusinessPhone" style="font-size:1em;"></label>

</div>

</div>

<div class="row">

<div class="medium-6 columns medium-centered">

<label id="BusinessEmail" style="font-size:1em">E-Mail:</label>

</div>

</div>

</div>

回答:

如果通过结果要loop,它必须是一个object。现在你是stringify你的结果。所以你不能迭代它。

使用JSON.parse的结果转换为JSON对象,然后使用$.each该对象

var vardata = JSON.parse(data); 

$.each(vardata, function (index, value) {

// TODO

});

上所以你不会需要拆分并考虑到array。您可以参考each声明中的value参数。

编辑

要从JSON使用的值,你可以使用其属性,从服务器的结果集。

一样,

$.each(vardata, function (index, value) { 

$("#BusProfileID").html(value.BusProfileID);

$("#BusinessName").html(value.BusinessName);

$("#BusinessPhone").html(value.BusinessPhone);

$("#BusinessEmail").html(value.BusinessEmail);

});

使用class,让你从SQL Query

public class BusinessData 

{

public long BusProfileID { get; set; }

public string BusProfileID { get; set; }

public string BusProfileID { get; set; }

public string BusProfileID { get; set; }

}

获取的数据创建一个List<BusinessData>对象,并从你的读者添加每个项目到这个列表

​​ 包含

JsonConvertNewtonsoft.Json nuget包中。

以上是 JQuery从通用处理程序中检索多个值 的全部内容, 来源链接: utcz.com/qa/261959.html

回到顶部