第二步:泛型通用动态查询(LinQ+Ajax)
我的春秋痴梦第二步:
写一个 通用的 对象 列表 ,还 包含 搜索和 属性过滤。
具体的效果是:
当新 业务 添加一个 表的时候,只需要在 对象模型里的 添加一个 model
后台几乎不需写代码。
(我是后台:激动人心!)
调用的对象,第几页,属性的 过滤 和搜索全是 前台的Ajax参数控制
(我是前台:#$!@#$%$^#$%# )
下面说说我的思路吧:
1.前台发出请求 写明 调用的 modleName 和 一些属性 的过滤
如:Author like,1
ModelName
Article 搜索作者 包含 1 对象名 文章
2.后台接受 处理传递的参数
3.根据 对象名 调用 对象 并过滤
4.根据 对象名 返回 对应 页面
1.前台JS 代码
前台代码
//================================================
//后台任一 类型 列表
//================================================
function AjaxForList(duixiang, pageid) {
var searchWords = $("#SearchWords").val();
var searchType = $("#SearchType").val();
var channelId = $("#list").val();
var IsRecycle = $("#IsRecycle").attr("checked");
//排序名
var sortName = "CreaterData";
//==================IsRecycle
var Del = new Array();
Del.push("="); //alert(IsRecycle);
if (IsRecycle) { Del.push(1); }
else { Del.push(0); }
//==================FullTitle
// 2010-3-22 0:00:00
var FullTitle = new Array();
FullTitle.push("like");
FullTitle.push("1");
//==================FullTitle
var Author = new Array();
Author.push("like");
Author.push("1");
//==================IsAudit
var IsAudit = new Array();
IsAudit.push("=");
IsAudit.push("0");
//============================
$.ajax(//
{
type: "POST",
url: "/Admin/UserKJ/AjaxForList",
data: "ModelName=" + duixiang + "&&PageId=" + pageid + "&&sortName=" + sortName + "&&Del=" + Del + "&&FullTitle=" + FullTitle + "&&Author=" + Author + "&&IsAudit=" + IsAudit,
dataType: "html",
beforeSend: function(XMLHttpRequest) { //
相关文档:
文件名:ajax.js
/**
* 取得当前页面的url
* 可以在调用ajax_query前修改
**/
var url = location.href.substr(0, location.href.length-location.search.length);
/**
* 给Function对象添加一个取得函数名的方法
**/
Function.prototype.Name = function() {
var s = Func ......
1、区块的显示与隐藏
在进行ajax编程时,经常会用到div标签对页面元素进行布局,大致方法是,把界面分做几大块,有时候需要根据点击菜单显示相应的块及隐藏其他块,这时可简单设置div.style.display为block进行显示,div.style.dispaly为none进行隐藏。
2、界面元素命名
&nb ......
jQuery确实是一个挺好的轻量级的JS框架,能帮助我们快速的开发JS应用,并在一定程度上改变了我们写JavaScript代码的习惯。
废话少说,直接进入正题,我们先来看一些简单的方法,这些方法都是对jQuery.ajax()进行封装以方便我们使用的方法,当然,如果要处理复杂的逻辑,还是需要用到jQuery.ajax()的(这个后面会说到).
1 ......
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>index</title>
<meta http-equiv="pragma" content="no-cache"&g ......
Ajax的IE缓存问题,会造成用open时用get方法不能重复提交,导致获取不到实时的信息。解决的办法有以下几种:
1.客户端在url后添加随机数.
new Date().getTime()或者Math.Random()
或者送请求前加上
XMLHttpRequest.setRequestHeader("If-Modified-Since","0")
2.或者用post方法提交  ......