Hi micah,
I have created sample code which full-fill your requirement. So please refer the below code.
HTML
<form id="form1" runat="server">
<div>
<br />
<input type="text" onclick="ClickTextbox()" class="form-control" style="width: 300px"
name="name" value=" " />
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span></button>
<h4 class="modal-title" id="myModalLabel">
Modal title</h4>
</div>
<div class="modal-body">
<input type="textusername" id="txtSearch" class="form-control" style="width: 300px"
name="name" value="" />
<hr />
<div id="dvCustomers">
<asp:DataList ID="dlCustomers" runat="server" RepeatLayout="Table" Style="width: 300px;
height: 100px; border: dashed 2px #04AFEF; background-color: #B0E2F5">
<ItemTemplate>
<b>Contact Name:</b><span class="contactName">
<%# Eval("ContactName")%></span><br />
<b>Customer ID:</b><span class="customerID">
<%# Eval("CustomerID")%></span><br />
<b>Company Name:</b> <span class="companyName">
<%# Eval("CompanyName")%></span><br />
<hr />
</ItemTemplate>
</asp:DataList>
</div>
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
</div>
<div>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript" src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" />
<script type="text/javascript">
function ClickTextbox() {
$('#myModal').modal('show');
$('#myModal').on('shown.bs.modal', function () {
$('#txtSearch').focus();
});
}
</script>
<script type="text/javascript">
$(function () {
$('[id*=txtSearch]').on("keyup", function () {
$("#dvCustomers").html('');
if (($(this).val().length) > 1) {
$.ajax({
type: "POST",
url: "Default.aspx/GetCustomers",
data: '{search:"' + $(this).val() + '"}',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: OnSuccess,
failure: function (response) { alert(response.d); },
error: function (response) { alert(response.d); }
});
}
});
});
function OnSuccess(response) {
var table = "<table cellpadding='2' cellspacing='0' border='1' Style='width: 300px; height: 100px; border: dashed 2px #04AFEF; background-color: #B0E2F5'>";
if (response.d != '') {
var xmlDoc = $.parseXML(response.d);
var xml = $(xmlDoc);
var customers = xml.find("Customers");
customers.each(function () {
var customer = $(this);
var contactName = customer.find("ContactName").text();
var customerID = customer.find("CustomerID").text();
var companyName = customer.find("CompanyName").text();
table += "<tr><td><b>Contact Name:</b>" + contactName + "<br/><b>Customer ID:</b>" + customerID + "<br/><b>Company Name:</b>" + companyName + "</td></tr>";
});
table += "</table>";
}
else {
table += "<tr align='center'><td><b>No Result For the Criteria</b></td></tr>";
}
$("#dvCustomers").html(table);
}
</script>
<style type="text/css">
body
{
font-family: Arial;
font-size: 10pt;
}
table
{
border: 1px solid #ccc;
}
table th
{
background-color: #F7F7F7;
color: #333;
font-weight: bold;
}
table th, table td
{
padding: 5px;
border-color: #ccc;
}
</style>
</div>
</form>
C#
public static DataSet GetCustomersData(string search)
{
string query = "GetCustomersRecord";
SqlCommand cmd = new SqlCommand(query);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@search", search);
return GetData(cmd);
}
private static DataSet GetData(SqlCommand cmd)
{
string strConnString = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
using (SqlConnection con = new SqlConnection(strConnString))
{
using (SqlDataAdapter sda = new SqlDataAdapter())
{
cmd.Connection = con;
sda.SelectCommand = cmd;
using (DataSet ds = new DataSet())
{
sda.Fill(ds, "Customers");
return ds;
}
}
}
}
[System.Web.Services.WebMethod]
public static string GetCustomers(string search)
{
DataSet ds = GetCustomersData(search);
if (ds.Tables[0].Rows.Count > 0)
{
return GetCustomersData(search).GetXml();
}
else
{
return "";
}
}
Vb.Net
Public Shared Function GetCustomersData(search As String) As DataSet
Dim query As String = "GetCustomerRecords"
Dim cmd As New SqlCommand(query)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.AddWithValue("@search", search)
Return GetData(cmd)
End Function
Private Shared Function GetData(cmd As SqlCommand) As DataSet
Dim strConnString As String = ConfigurationManager.ConnectionStrings("constr").ConnectionString
Using con As New SqlConnection(strConnString)
Using sda As New SqlDataAdapter()
cmd.Connection = con
sda.SelectCommand = cmd
Using ds As New DataSet()
sda.Fill(ds, "Customers")
Return ds
End Using
End Using
End Using
End Function
<System.Web.Services.WebMethod> _
Public Shared Function GetCustomers(search As String) As String
Dim ds As DataSet = GetCustomersData(search)
If ds.Tables(0).Rows.Count > 0 Then
Return GetCustomersData(search).GetXml()
Else
Return ""
End If
End Function
SQL
CREATE PROCEDURE GetCustomerRecords
@Search NVARCHAR(99)
AS
BEGIN
SET NOCOUNT ON;
SELECT [CustomerID]
,[CompanyName]
,[ContactName]
FROM [Customers]
WHERE (ContactName LIKE @search + '%' OR @search IS NULL)
END
GO
Screenshot