建立一个数据库表写一个静态页面放一个文本框,按钮(搜索名字)用Ajax把搜索请求发到服务器端写一个一般处理程序按客户端发来的条件用EF LINQ语录查询查询结果转为stringajax方式放回给客户端然后客户端在DIV中显示结果
时间: 2024-05-06 11:20:41 浏览: 83
以下是一个简单的实现:
1. 建立数据库表
假设我们要查询的是员工信息,可以建立一个名为Employee的表,包含以下字段:
- EmployeeID:员工编号,int类型,自增长。
- FirstName:员工名字,nvarchar(50)类型。
- LastName:员工姓氏,nvarchar(50)类型。
- Title:员工职称,nvarchar(50)类型。
- HireDate:入职日期,datetime类型。
2. 编写静态页面
在页面中添加一个文本框和一个按钮,用于输入搜索条件和触发搜索操作。同时,添加一个DIV用于显示查询结果。
```
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Employee Search</title>
</head>
<body>
<label>Search by Name:</label>
<input type="text" id="txtName" />
<button id="btnSearch">Search</button>
<div id="result"></div>
</body>
</html>
```
3. 用Ajax发送搜索请求
在页面中添加以下代码,用于使用Ajax发送搜索请求。
```
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script>
$(function () {
$("#btnSearch").click(function () {
var name = $("#txtName").val();
$.ajax({
url: "SearchHandler.ashx",
type: "POST",
data: { name: name },
success: function (data) {
$("#result").html(data);
},
error: function () {
alert("Error");
}
});
});
});
</script>
```
4. 编写一般处理程序
创建名为SearchHandler的一般处理程序,用于处理客户端发送的搜索请求。在处理程序中,可以使用EF LINQ语句查询数据库中符合条件的数据,并将查询结果转换为字符串返回给客户端。
```
<%@ WebHandler Language="C#" Class="SearchHandler" %>
using System;
using System.Linq;
using System.Web;
using System.Data.Entity;
public class SearchHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
string name = context.Request.Form["name"];
using (var db = new EmployeeDbContext())
{
var query = from e in db.Employees
where e.FirstName.Contains(name) || e.LastName.Contains(name)
orderby e.EmployeeID
select e;
string result = "";
foreach (var emp in query)
{
result += String.Format("{0} {1}, {2} ({3})<br/>", emp.FirstName, emp.LastName, emp.Title, emp.HireDate.ToShortDateString());
}
context.Response.Write(result);
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
public class EmployeeDbContext : DbContext
{
public DbSet<Employee> Employees { get; set; }
}
public class Employee
{
public int EmployeeID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Title { get; set; }
public DateTime HireDate { get; set; }
}
```
5. 运行程序
将静态页面、一般处理程序和数据库表放在同一目录下,并使用IIS或Visual Studio内置Web服务器运行程序。在页面中输入员工名字并点击搜索按钮,即可在DIV中显示符合条件的员工信息。
阅读全文