Ajax实现页面动态加载,添加数据
前台代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Products.aspx.cs" Inherits="_0726Test.Product.Products" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script src="../js/jquery.js"></script>
<script type="text/javascript">
$(function () {
//1.加载表格中的信息
loadComments();
//2.给按钮添加单击事件
$('#btnSend').click(function () {
var post_data = $('#form1').serializeArray();//获取序列化表单元素
//将请求提交到一般处理程序 $.post("InsertProduct.ashx", post_data, function (_datetext) {
if (_datetext == 1) {
alert("添加成功");
loadComments();
}
})
})
}) //页面加载事件
function loadComments() {
$.getJSON('GetAllProduct.ashx?id=' + Math.random(), null, function (_dataJSON) {
//获取tbody标签 var tbodyDate = $('#tbodyDate');
tbodyDate.empty();
//遍历JSON元素,添加到到Tbody for (var i = 0; i < _dataJSON.length; i++) {
tbodyDate.append
($('<tr><td>' + _dataJSON[i].Id + '</td>' +
'<td>' + _dataJSON[i].Name + '</td>'+
'<td>'+_dataJSON[i].Price+'</td>'+
'<td>'+_dataJSON[i].Sales+'</td></tr>'));
}
})
}
</script>
</head>
<body>
<form id="form1" runat="server">
<table border="1" cellspcing="2" cellpadding="1">
<tr>
<td>
名称:
</td>
<td>
<input type="text" name="txtPname" />
</td>
</tr>
<tr>
<td>
价格:
</td>
<td>
<input type="text" name="txtPrice" />
</td>
</tr>
<tr>
<td>
数量:
</td>
<td>
<input type="text" name="txtSales" />
</td>
</tr>
<tr>
<td>
</td>
<td>
<input type="button" id="btnSend" value="提交" />
</td>
</tr>
</table>
</form>
<p>--------------------商品列表----------------------</p>
<table border="1" cellspacing="2" cellpadding="1" >
<thead>
<tr>
<th>
ID
</th>
<th>
名称
</th>
<th>
价格
</th>
<th>
数量
</th>
</tr>
</thead>
<tbody id ="tbodyDate">
</tbody>
</table>
</body>
</html>
一般处理程序代码:
GetAllProduct.ashx(加载数据到页面)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.SqlClient;
using System.Web.Script.Serialization;
namespace _0726Test.Product
{
/// <summary>
/// GetAllProduct 的摘要说明
/// </summary>
public class GetAllProduct : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
string str = @"Data Source=QH-20160731XBEK\SQLSERVER2008;Initial Catalog=MvcTest;User ID=sa;Password=1234";
SqlConnection conn = new SqlConnection(str);
conn.Open();
string selname = "SELECT * FROM MyProduct";
List<MyProduct> products = new List<MyProduct>();
SqlCommand sc = new SqlCommand(selname, conn);
SqlDataReader dr = sc.ExecuteReader();
while (dr.Read())
{
MyProduct product = new MyProduct();
product.Id = Convert.ToInt32(dr["Id"]);
product.Name = dr["ProductName"].ToString();
product.Price = Convert.ToDouble(dr["Price"]);
product.Sales = Convert.ToInt32(dr["Sales"]);
products.Add(product);
}
dr.Close();
//把list集合转为JSON类型 JavaScriptSerializer jss = new JavaScriptSerializer();
string jsondata = jss.Serialize(products);
context.Response.Clear();
context.Response.Write(jsondata);
context.Response.End();
}
public bool IsReusable
{
get
{
return false;
}
}
}
}
InsertProduct.ashx(添加数据)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.SqlClient;
namespace _0726Test.Product
{
/// <summary>
/// InsertProduct 的摘要说明
/// </summary>
public class InsertProduct : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
MyProduct product = new MyProduct();
product.Name = context.Request.Form["txtPname"];
product.Price = Convert.ToDouble(context.Request.Form["txtPrice"]);
product.Sales = Convert.ToInt32(context.Request.Form["txtSales"]);
string str = @"Data Source=QH-20160731XBEK\SQLSERVER2008;Initial Catalog=MvcTest;User ID=sa;Password=1234";
SqlConnection conn = new SqlConnection(str);
conn.Open();
string insertSQL = "INSERT INTO MyProduct VALUES(@name,@price,@sales)";
SqlCommand sc = new SqlCommand(insertSQL, conn);
sc.CommandType = CommandType.Text;
SqlParameter p1 = new SqlParameter("@name", product.Name);
SqlParameter p2 = new SqlParameter("@price", product.Price);
SqlParameter p3 = new SqlParameter("@sales", product.Sales);
sc.Parameters.Add(p1);
sc.Parameters.Add(p2);
sc.Parameters.Add(p3);
context.Response.Clear();
int result = sc.ExecuteNonQuery();
)
{
context.Response.Write(");
}
else
{
context.Response.Write(");
}
context.Response.End();
conn.Close();
}
public bool IsReusable
{
get
{
return false;
}
}
}
}
Ajax实现页面动态加载,添加数据的更多相关文章
- layui中,同一个页面动态加载table数据表格
效果图: 前端代码: <div class="layui-fluid" id="record-user" hidden="hidden" ...
- js/jquery控制页面动态加载数据 滑动滚动条自动加载事件--转他人的
js/jquery控制页面动态加载数据 滑动滚动条自动加载事件--转他人的 相信很多人都见过瀑布流图片布局,那些图片是动态加载出来的,效果很好,对服务器的压力相对来说也小了很多 有手机的相信都见过这样 ...
- geotrellis使用(二十三)动态加载时间序列数据
目录 前言 实现方法 总结 一.前言 今天要介绍的绝对是华丽的干货.比如我们从互联网上下载到了一系列(每天或者月平均等)的MODIS数据,我们怎么能够对比同一区域不同时间的数据情况,采用 ...
- Echarts使用及动态加载图表数据
Echarts使用及动态加载图表数据 官网:http://echarts.baidu.com/ 1.文档 2.实例 名词: 1.统计维度(说明数据) 维度就是统计致力于建立一个基于多方位统计(时间.地 ...
- AJAX 动态加载后台数据 绑定select
<select id="select"> <!--下拉框数据动态加载--> </select> js:(使用jquery) $(document ...
- [JS前端开发] js/jquery控制页面动态加载数据 滑动滚动条自动加载事件
页面滚动动态加载数据,页面下拉自动加载内容 相信很多人都见过瀑布流图片布局,那些图片是动态加载出来的,效果很好,对服务器的压力相对来说也小了很多 有手机的相信都见过这样的效果:进入qq空间,向下拉动空 ...
- Echarts动态加载后台数据
注意:1.用Ajax请求获取后台数据 2.Echarts只能处理Json数据 后台Controller:根据业务需求不同而返回不同数据,我前台要循环遍历Echarts的series进行数据添加,所以后 ...
- Echarts使用及动态加载图表数据 折线图X轴数据动态加载
Echarts简介 echarts,缩写来自Enterprise Charts,商业级数据图表,一个纯JavaScript的图表库,来自百度...我想应该够简洁了 使用Echarts 目前,就官网的文 ...
- 使用 Cesium 动态加载 GeoJSON 数据
前言 需求是这样的,我需要在地图中显示 08 年到现在的地震情况,地震都是发生在具体的时间点的,那么问题就来了,如何实现地震情况按照时间动态渲染而不是一次全部加载出来. 一. 方案分析 这里面牵扯到两 ...
随机推荐
- 企业架构研究总结(44)——企业架构与建模之Archimate视图和视角
3. ArchiMate的视角与视图 创建.维护一个企业架构是一件非常复杂繁琐的事情,因为这项工作需要面对许多背景.利益各异的干系人,对他们所关注的问题进行解答,并能够在他们之间形成无障碍的沟通流.为 ...
- angular 实战系列 之 mvvm模式
什么是MVVM模式 mvvm模式是mvc模式的一种变体,其中第一个m表示model,可以认为是数据对象的抽象,v代表view,vm代表view model ,是对view中的数据抽象(注1).mvvm ...
- JQuery实现分页程序代码
JQuery实现分页程序代码 做Web开发的程序员,分页时在所难免的,微软GridView.AspPager等设置分页数据可以自动分页,但是这里浏览器会闪动,用户体验不是很友好,在此我整理了JQuer ...
- OpenCV3.0.0+win10 64位+vs2015环境的下载,安装,配置
操作系统:WIN10 pro 64 软件版本:VS2015+OpenCV3.0.0 1. 下载安装 http://opencv.org/ https://www.visualstudio.com/ ...
- MapXtreme+Asp.net 动态轨迹
MapXtreme+Asp.net 动态轨迹(请求大神指点) 功能简介:在MapXtreme+Asp.net的环境下实现轨迹回放功能,经过两天的努力基本实现此功能.但还有部分问题需要解决,求大神们 ...
- Django入门实践(二)
Django入门实践(二) Django模板简单实例 上篇中将html写在了views中,这种混合方式(指Template和views混在一起)不适合大型开发,而且代码不易管理和维护,下面就用Djan ...
- [设计模式-创建型]工厂方法(Factory Method)
概括 名称 Factory Method 结构 动机 定义一个用于创建对象的接口,让子类决定实例化哪一个类.Factory Method 使一个类的实例化延迟到其子类. 适用性 当一个类不知道它所必 ...
- 算法之prim算法
最小生成树是数据结构中图的一种重要应用,它的要求是从一个带权无向完全图中选择n-1条边并使这个图仍然连通(也即得到了一棵生成树),同时还要考虑使树的权最小. prim算法就是一种最小生成树算法. 普里 ...
- Sybase数据库截断和清空日志的方法
今天碰到一个奇怪的问题,当我打开应用程序的时候,开始的时候鼠标图标还显示程序正在启动,可是一会后,就没有任何反应了.重复了N多次都是这样,后来发现,每次打开应用程序的时候,任务管理器中都会相应的多一个 ...
- 学习OpenCV,看这些!
OpenCV简介: OpenCV 是一款功能强大的跨平台计算机视觉开源库,可以用于解决人机交互.物体检测.人脸识别等领域的问题.库本身是采用 C++ 编写的,但是同时也对 Python, Java, ...