发布一个原创的基于Ajax的通用(组合)查询
2005-12-17 09:37
681 查看
简单介绍:
1.完全无刷实现,客户端主要实现生成条件选择或录入控件,并进行录入控制;
2.将字段信息存放于XML文件,便于数据移植
3.通过js脚本,ajax框架引擎获取字段信息
4.通过js脚本生成组合条件;
5.运行效果:using System;
using System.Xml;
using System.Data;
using System.Data.SqlClient;
namespace WebUI.AjaxSearchSystem
2.AjaxSearchDataCollection.xml
<?xml version="1.0" encoding="utf-8" ?>
<Fields>
<Table Name="产品表" value="employee">
<Field Name="雇佣号" Value="emp_id" DataType="char">
</Field>
<Field Name="名字" Value="fname" DataType="char">
<Enum SqlSyntax="" TextField="" ValueField=""></Enum>
</Field>
<Field Name="工作号" Value="job_id" DataType="int">
<Enum SqlSyntax="SELECT job_id,job_desc FROM jobs" TextField="job_desc" ValueField="job_id"></Enum>
</Field>
<Field Name="工作**" Value="job_lvl" DataType="int">
</Field>
<Field Name="雇佣日期" Value="hire_date" DataType="datetime">
</Field>
</Table>
</Fields>
继续阅读
3.AjaxSearchClientScript.js
var tbPanel = null; //用于展示组合条件的表控件
var tableName = null; //记录查询的表
var fieldsInfo = null; //保存从服务端取得的对应表的字段信息
var no = 0; //为防止出现重复id保存的计数器
//添加条件编辑行
function addTerm(tbPanelId)
//取得并设置运算符
function getOpts(row)
//设置值录入控件,取得可能存在的枚举值
function getInput(row)
//删除当前行
function DelRow(row)
//新增行
function addRow(row)
//得到组合条件
function getCombinTerm()
//
var oldValue = "";
var MONEY_FLAG = "";
var THOUSAND_FLAG = ",";
function controlNumberKeyPress(textbox)
//
function controlMoneyKeyPress(textbox)
//控制金额录入keyUp事件
function controlNumberOnKeyUp(textbox)
//控制金额录入keyUp事件
function controlMoneyOnKeyUp(textbox, intBit , dotBit)
//添加千分位号
function addThousandFlag(val)
//判断是否是数字
function isNumber(param)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>查询条件</title>
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<meta content="C#" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
<base target="_self">
<LINK href="BasicStyle.css" type="text/css" rel="stylesheet">
<script language="javascript" src="Calendar.js"></script>
</HEAD>
<body onload="javascript:addTerm('tbPanel');" MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<TABLE id="Table1" style="Z-INDEX: 101; LEFT: 0px; POSITION: absolute; TOP: 0px" cellSpacing="0"
cellPadding="0" width="100%" border="0">
<TR>
<TD style="HEIGHT: 23px" align="center"><asp:button id="btnOK" runat="server" CssClass="redButtonCss" Text="确定"></asp:button><INPUT class="redButtonCss" type="button" value="取消" onclick="javascript:window.close();">
</TD>
</TR>
<TR>
<TD align="center">
<TABLE id="tbPanel" cellSpacing="0" borderColorDark="aliceblue" cellPadding="0" border="1">
</TABLE>
</TD>
</TR>
<TR>
<TD align="center"></TD>
</TR>
</TABLE>
<INPUT id="transValue" style="Z-INDEX: 102; LEFT: 8px; POSITION: absolute; TOP: 64px" type="hidden"
name="Hidden1" runat="server">
</form>
</body>
</HTML>
AjaxSeachPage.aspx.cs
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Text;
namespace WebUI.AjaxSearchSystem
{
/// <summary>
/// AjaxSeachPage 的摘要说明。
/// </summary>
public class AjaxSeachPage : System.Web.UI.Page
{
protected System.Web.UI.HtmlControls.HtmlInputHidden transValue;
protected System.Web.UI.WebControls.Button btnOK;
public const string SEARCH_WHERE_SESSION = "SearchWhere";
private void Page_Load(object sender, System.EventArgs e)
{
if (!IsPostBack)
{
try
{
//tableName.Value = Request.QueryString["table"].Trim();
transValue.Value = "employee";
}
catch(NullReferenceException ee)
{
throw new ArgumentOutOfRangeException("table","参数不正确,请传入预先定义的表名");
}
AjaxPro.Utility.RegisterTypeForAjax(typeof(AjaxSearchMethod));
this.btnOK.Attributes.Add("OnClick","getCombinTerm()");
}
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.btnOK.Click += new System.EventHandler(this.btnOK_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void btnOK_Click(object sender, System.EventArgs e)
{
Session[SEARCH_WHERE_SESSION] = transValue.Value.Trim();
Response.Write(ClosePage());
}
private string ClosePage()
{
StringBuilder js = new StringBuilder();
return js.ToString();
}
}
}
运行效果:
下载源码 AjaxGeneralSearch.rar
请大家提出宝贵意见,在此感谢我的同事 命运有自己的梦!提供的帮助!感谢日历控件提供者meizz
1.完全无刷实现,客户端主要实现生成条件选择或录入控件,并进行录入控制;
2.将字段信息存放于XML文件,便于数据移植
3.通过js脚本,ajax框架引擎获取字段信息
4.通过js脚本生成组合条件;
5.运行效果:using System;
using System.Xml;
using System.Data;
using System.Data.SqlClient;
namespace WebUI.AjaxSearchSystem
2.AjaxSearchDataCollection.xml
<?xml version="1.0" encoding="utf-8" ?>
<Fields>
<Table Name="产品表" value="employee">
<Field Name="雇佣号" Value="emp_id" DataType="char">
</Field>
<Field Name="名字" Value="fname" DataType="char">
<Enum SqlSyntax="" TextField="" ValueField=""></Enum>
</Field>
<Field Name="工作号" Value="job_id" DataType="int">
<Enum SqlSyntax="SELECT job_id,job_desc FROM jobs" TextField="job_desc" ValueField="job_id"></Enum>
</Field>
<Field Name="工作**" Value="job_lvl" DataType="int">
</Field>
<Field Name="雇佣日期" Value="hire_date" DataType="datetime">
</Field>
</Table>
</Fields>
继续阅读
3.AjaxSearchClientScript.js
var tbPanel = null; //用于展示组合条件的表控件
var tableName = null; //记录查询的表
var fieldsInfo = null; //保存从服务端取得的对应表的字段信息
var no = 0; //为防止出现重复id保存的计数器
//添加条件编辑行
function addTerm(tbPanelId)
//取得并设置运算符
function getOpts(row)
//设置值录入控件,取得可能存在的枚举值
function getInput(row)
//删除当前行
function DelRow(row)
//新增行
function addRow(row)
//得到组合条件
function getCombinTerm()
//
var oldValue = "";
var MONEY_FLAG = "";
var THOUSAND_FLAG = ",";
function controlNumberKeyPress(textbox)
//
function controlMoneyKeyPress(textbox)
//控制金额录入keyUp事件
function controlNumberOnKeyUp(textbox)
//控制金额录入keyUp事件
function controlMoneyOnKeyUp(textbox, intBit , dotBit)
//添加千分位号
function addThousandFlag(val)
//判断是否是数字
function isNumber(param)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>查询条件</title>
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<meta content="C#" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
<base target="_self">
<LINK href="BasicStyle.css" type="text/css" rel="stylesheet">
<script language="javascript" src="Calendar.js"></script>
</HEAD>
<body onload="javascript:addTerm('tbPanel');" MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<TABLE id="Table1" style="Z-INDEX: 101; LEFT: 0px; POSITION: absolute; TOP: 0px" cellSpacing="0"
cellPadding="0" width="100%" border="0">
<TR>
<TD style="HEIGHT: 23px" align="center"><asp:button id="btnOK" runat="server" CssClass="redButtonCss" Text="确定"></asp:button><INPUT class="redButtonCss" type="button" value="取消" onclick="javascript:window.close();">
</TD>
</TR>
<TR>
<TD align="center">
<TABLE id="tbPanel" cellSpacing="0" borderColorDark="aliceblue" cellPadding="0" border="1">
</TABLE>
</TD>
</TR>
<TR>
<TD align="center"></TD>
</TR>
</TABLE>
<INPUT id="transValue" style="Z-INDEX: 102; LEFT: 8px; POSITION: absolute; TOP: 64px" type="hidden"
name="Hidden1" runat="server">
</form>
</body>
</HTML>
AjaxSeachPage.aspx.cs
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Text;
namespace WebUI.AjaxSearchSystem
{
/// <summary>
/// AjaxSeachPage 的摘要说明。
/// </summary>
public class AjaxSeachPage : System.Web.UI.Page
{
protected System.Web.UI.HtmlControls.HtmlInputHidden transValue;
protected System.Web.UI.WebControls.Button btnOK;
public const string SEARCH_WHERE_SESSION = "SearchWhere";
private void Page_Load(object sender, System.EventArgs e)
{
if (!IsPostBack)
{
try
{
//tableName.Value = Request.QueryString["table"].Trim();
transValue.Value = "employee";
}
catch(NullReferenceException ee)
{
throw new ArgumentOutOfRangeException("table","参数不正确,请传入预先定义的表名");
}
AjaxPro.Utility.RegisterTypeForAjax(typeof(AjaxSearchMethod));
this.btnOK.Attributes.Add("OnClick","getCombinTerm()");
}
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.btnOK.Click += new System.EventHandler(this.btnOK_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void btnOK_Click(object sender, System.EventArgs e)
{
Session[SEARCH_WHERE_SESSION] = transValue.Value.Trim();
Response.Write(ClosePage());
}
private string ClosePage()
{
StringBuilder js = new StringBuilder();
return js.ToString();
}
}
}
运行效果:
下载源码 AjaxGeneralSearch.rar
请大家提出宝贵意见,在此感谢我的同事 命运有自己的梦!提供的帮助!感谢日历控件提供者meizz
相关文章推荐
- 发布一个原创的基于Ajax的通用(组合)查询
- 发布一个原创的基于Ajax的通用(组合)查询(续)
- 一个基于Ajax的通用(组合)查询
- 【转】一个基于Ajax的通用(组合)查询(ASP.NET)
- 推荐一个基于Ajax的查询API网站
- 推荐一个基于Ajax的查询API网站
- 一个简单的基于Ajax的异步查询
- 推荐一个基于Ajax的查询API网站
- 推荐一个基于Ajax的查询API网站
- 原创:发布一个基于TokyoTyrant的C#客户端开源项目
- 推荐一个基于Ajax的查询API网站
- 推荐一个基于Ajax的查询API网站
- 推荐一个基于Ajax的查询API网站
- 【原创】一个非常简洁基于jquery原创无限级联ajax异步请求下拉框插件
- 推荐一个基于Ajax的查询API网站
- 推荐一个基于Ajax的查询API网站
- [原创]jPagerBar1.2发布-jquery分页插件(一个适合Ajax+JSON+jQuery环境使用的多功能页码栏插件)(Demo、源文件下载已更新)
- 原创:发布一个基于TokyoTyrant的C#客户端开源项目
- 推荐一个基于Ajax的查询API网站
- 推荐一个基于Ajax的查询API网站