上一节讲到jQuery,本来还不能这么快就发jQuery+Ajax的,因为这部分对于新手来说,不是很好理解,但为了配合发我的实习经验,就先贴出来了。新手先有个概念就好,Ajax是为了前端能和后台交互的,它们的关系就像:顾客来到某餐厅,服务员就像前台的一个元素,厨房就像后台的一个元素,你想吃什么和服务员说,服务员就让厨房里的人做出对应的佳肴,然后服务员拿着你想要的东西给你。(菜式名,钱等是传入参数,佳肴是返回数据~)
不扯了~我需要实现一种比较复杂的组合搜索效果。类似:
前端会记录所要搜索的关键词,每次新增一个条件,就请求后台一次返回符合要求的数据,同样,没删除一个条件,也会重新返回对应数据。
下面是我做的一个还有很多Bug的Demo,原本我想在后台保存结果数据,用了全局static变量来保存。
后来还是测试不出正确结果,觉得还是将数据在前端保存就好吧,然后每次都让后台根据前端的数据来返回新的数据。
前台:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ajaxJquery.aspx.cs" Inherits="EMS.WEB.Enterprise.ajaxJquery" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="js/jquery-1.4.1-vsdoc.js" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
var tabIds = new Array();
//下拉框选项改变时,列表选项判断后添加。Label1(相当图表)更新。
$("#mySelect").change(function () {
var selectId = $("#mySelect").val();
var selectText = $("#mySelect option:selected").text();
var isSecond = false;
for (var i = 0; i < tabIds.length; i++) {
if (tabIds[i] == selectId) {
isSecond = true;
return;
}
}
if (!isSecond) {
tabIds.push(selectId);
$("#myUi").append("<li " + "id='" + selectId + "'" + ">" + selectText + "</li>");
$.ajax({
type: "get",
url: "ajaxJquery.aspx",
data: "id=" + selectId + "&" + "show=1",
async: false,
contentType: "application/json;charset=utf-8",
dataType: "json",
success: function (msg) {
$("#Label1").text("");
$.each(msg, function () {
$("#Label1").text($("#Label1").text() + "+" + this.data);
});
}
});
}
});
//点击列表选项时,删除该选项,Label1(相当图表)更新。
$("#myUi li").live("click", function () {
var selectId = $(this).attr("id");
$(this).remove();
$.ajax({
type: "get",
url: "ajaxJquery.aspx",
dataType: "json",
async: false,
data: "id=" + selectId + "&" + "show=0",
success: function (msg) {
$("#Label1").text("");
$.each(msg, function () {
$("#Label1").text($("#Label1").text() + "+" + this.data);
for (var i = 0; i < tabIds.length; i++) {
if (tabIds[i] == selectId) {
tabIds.splice(i, 1);
return;
}
}
});
}
})
})
});
</script>
<style type="text/css">
#myUi li
{
background-color: Aqua;
margin-left: 4px;
float: left;
width: 70px;
list-style: none;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<select id="mySelect" runat="server">
</select>
</div>
<div id="myTab">
<ul id="myUi">
</ul>
</div>
<div style="clear: left;">
</div>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<div id="ddiv" runat="server">
</div>
</form>
</body>
</html>
后台:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Services;
using System.Web.Script.Serialization;
using System.Text;
namespace EMS.WEB.Enterprise
{
[Serializable]//序列话后才能用系统类转换为json
public class Data
{
public int index;
public string data;
public Data(int i, string d)
{
index = i;
data = d;
}
}
public partial class ajaxJquery : System.Web.UI.Page
{
static List<Data> data= new List<Data>();//用来装 选择过的选项 的索引号及数据
public List<Data> ShowData(int id)
{
data.Add(new Data(id, "图:" + id));
return data;
}
public List<Data> RemoveData(int id)
{
for (int i = 0; i < data.Count; i++)
{
if (data[i].index == id)
{
data.Remove(data[i]);
break;
}
}
return data;
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack && Request.Params["id"] == null)
{
#region 初始化数据
for (int i = 0; i < s.Length; i++)
{
mySelect.Items.Add(new ListItem(s[i], i.ToString()));
}
#endregion
return;
}
if (Request.Params["id"] != null)
{
int id = int.Parse(Request.Params["id"]);
JavaScriptSerializer json = new JavaScriptSerializer();
if (Request.Params["show"] == "1")
{
ShowData(id);
}
else if (Request.Params["show"] == "0")
{
RemoveData(id);
}
Response.Write(json.Serialize(data));
Response.End();
}
}
}
}
分享到:
相关推荐
使用asp.net,jquery,ajax,jqgrid,json开发,多标签未完成进销存项目前端源代码aspx+javascript+ 数据库脚本,无刷新提交,tab页绝非iframe,供学习、二次开发或者程序定制。 演示地址:218.95.37.10:8083/login....
ajax(jquery+json)实现前端无刷新分类管理源码! 值得下载看看!资源免费,大家分享!! 更多免费资源 http://ynsky.download.csdn.net/
写个一个简单的web项目,把html、css、JavaScript、jQuery,ajax,bootstrop前端技术的dome。
通过这个项目,学员不仅可以在实战中巩固对前面学习的ASP.Net、ADO.Net、WinForm等知识的掌握,还可以掌握网站防黑、缓存、SEO、静态化、搜索引擎技术、AJAX等大型互联网开发中涉及到的技术。 8、.Net新技术...
JQuery基础教程之第五章后面章节请看我后续资源jquery全套教程: JQuery基础教程之前言和前三章:http://download.csdn.net/source/745869 JQuery基础教程之第四章:http://download.csdn.net/source/745907 JQuery...
前端:HTML + CSS + JavaScript + Bootstrap + Jquery + Ajax 后端:springboot+mybatis-plus 2.开发环境 工具:IDEA 环境:JDK 1.8、Tomcat 8.0、Mysql 8.0 详见:...
JQuery基础教程之第四章后续章节看我后续资源jquery全套教程: JQuery基础教程之前言和前三章:http://download.csdn.net/source/745869 JQuery基础教程之第四章:http://download.csdn.net/source/745907 JQuery基础...
此PPT讲述了Asp.Net WebAPI及相关Web服务技术发展历史。 共80多页,Asp.Net WebAPI在讲到第36页的时候才会出现,因为这个技术不是凭空产生的,它有着自己...4. 与WebAPI配合的前端JS开发框架介绍(Knockout与jQuery)。
一款电商网站,第三波书店,包含网站后台管理系统,支付方式:支付宝支付、PayPal支付.包含电商网站前台和网站后台管理系统(用户管理,图书管理,分类管理,出版社管理,购物车管理,订单管理,网站日志管理) 后端...
源码下载地址:http://xiazai.jb51.net/201509/yuanma/loveit(jb51.net).rar 实现过程 本文基于jQuery,通过PHP与mysql实现了一个评级功能,是一个简单的非常好的ajax应用实例。 用户点击页面中自己喜欢的图片上
前端:HTML + CSS + JavaScript + Bootstrap + Jquery + Ajax 后端:springboot+mybatis-plus 2.开发环境 工具:IDEA 环境:JDK 1.8、Tomcat 8.0、Mysql 8.0 详见:...
基于Asp.Net MVC4.0 + WebAPI + Knockout 技术,采用EasyUI为前台开发展示UI,Knockout主要负责前端的逻辑交互,再结合jQuery Ajax进行提交数据请求,最新企业进销存管理系统源码分享,C#程序.net erp easyui mvc4...
本人花30RMB从淘宝购买的最新Color Admin1.9响应式后台模板,非常漂亮,代码完整!下面是模板预览地址! http://www.seantheme.com/color-admin-v1.9/admin/html/index.html Color Admin is the new premium and ...
[其他类别]ajax 插入 删除功能_jquerytest.zip源码ASP.NET网站源码打包下载[其他类别]ajax 插入 删除功能_jquerytest.zip源码ASP.NET网站源码打包下载[其他类别]ajax 插入 删除功能_jquerytest.zip源码ASP.NET网站...
前台使用杨青的模板,使用jQuery的ajax渲染页面 后台 后台使用layui 后端 ASP.NET 一般处理程序将数据组成json格式传到前端 【备注】 该项目代码主要针对计算机、自动化等相关专业的学生从业者下载使用,代码经过...
http://www.360doc.com/userhome.aspx?userid=19107491&cid=3 jQuery基本选择器及用法 前端模块化开发(AMD和CDM规范) http://wenku.baidu.com/view/25ddbf420b4e767f5acfcee0.html jQuery.getJSON的缓存问题的解决...
jQuery和Asp.net的Ajax效果实现,前后端对JSON数据的灵活处理 ASP.NET WebControl的动态调用以及使用Web Control生成HTML代码实现 全手工打造无极树菜单,全手工打造分页控件,全手工打造无缝滚动图片控件
1. ASP.NET MVC 基础 为什么选择MVC,假如您是个有梦想的人,那么你也应该喜欢极致的东西,而不顾一切付出 表现层的性能可以优化到极致 强迫学习前端语言html以及css、JavaScript 关注点分离 原生态url routing,...
Zephyr.Net 企业版是基于Asp.Net MVC4.0 + WebAPI + Knockout 技术,采用EasyUI为前台开发展示UI,Knockout主要负责前端的逻辑交互,再结合jQuery Ajax进行提交数据请求。 二、框架特色 1、基于 ASP.NET MVC4.0 + ...
Js事件:jQuery/ajax 可视化报表:ECharts 下拉框:Bootstrap-Select 后端 服务层:SpringBoot 持久层:Mybatis 分页:Pagehelper 连接池:c3p0 实体类:Lombok 3.本项目所用环境: 开发工具:IDEA 编程语言:JDK1.8,HTML,...