在我的一个java项目中,需要在数据列表的上面添加过滤功能,可且根据用户选择的过滤条件,来生成不同过滤脚本:
//**********************以下是表格的第一行脚本***************************//
选择查询条件: | | <%=BugInfoList.getFilterHtml()%> | 开始过滤 src="../images/image/cx.gif" align="absMiddle" border="0">全部 | //*********************************以下是JavaScript脚本******************************************************//
/*获取客户端XMLHttpRequest请求对象*/
function getRequest(){
var request = false;
try {
request = new XMLHttpRequest();
} catch (trymicrosoft) {
try {
request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (othermicrosoft) {
try {
request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (failed) {
request = false;
}
}
}
if (!request) alert("错误初始化XMLHttpRequest对象!");
return request;
}
var request=getRequest();
//改变过滤条件
function changeFilter() {
if(request==null) request=getRequest();
var name = FrmBugInfo.FilterName.value;
var url ="../ajaxFilter?name="+name;
request.onreadystatechange = updateFilter;
request.open("GET", url, true);
request.send(null);
}
//改变过滤条件
function updateFilter(){
if (request.readyState == 4) {
if (request.status == 200) {
var text=request.responseText;
document.getElementById("filter").innerHTML=text;
} else{
alert("状态是:" + request.status);
}
delete request['onreadystatechange'];
request=null;//必须清空
}
}
//*********************************以下是ajaxFilter源码,它是一个servlet*********************************************//
static final String[] TIME={"smalldatetime","datetime","timestamp"};
static final String[] NUM ={"tinyint","smallint","int","bigint","decimal","numeric",
"float","real","smallmoney","money","binary",};
static final String SQL ="select * from DataDict where TableName='%s' and FieldName='%s'";
static final String DEFAULT="
";
static final String DATE ="
+" class=\"TextBox\" readonly=\"readonly\" style=\"width:100px;\"/> \n"
+"
![]()
+" alt=\"选择日期\" src=\"../images/image/date.gif\" width='16' align='middle'>";
//doGet和doPost中的源码
response.setContentType(CONTENT_TYPE);
PrintWriter out=response.getWriter();
String name=request.getParameter("name");
out.print(PageList.getFilter(name));
[1]
--------------------next---------------------