After doing a search on Google and reading documentation, I am confused how this works. When calling a generic handler with a value and returning multiple values on success. How do you loop through the records in the database? Do you loop through the records on the generic handler or on success with an JQuery Each Function? Below is my current code that does not work when multiple values exist. Delete the $.each(vardata, function () and it works; however, only one record is shown.
This is how the data should look after you type in Erie in the textbox and click on the button
Business Profile ID: 8
Business Name: The Boston Store
Phone Number: 814-455-1478
E-Mail: BostonStore@gmail.com
Business Profile ID: 9
Business Name: Sam The Man Pizza
Phone Number: 814-868-3809
E-Mail: Ed@samtheman.com
JQuery Script
$(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 handler page
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 Page
<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>