Ajax 实现无刷新编辑页面
1.下载ajax, .net1.1版本ajaxpro.dll .net2.0就用ajaxpro2.dll
2.在VS项目里面添加它们的引用,并在Web.COnfig中配置(我这里用的是.net 2.0)
<system.web>
<httpHandlers>
<add verb="POST,GET" path="AjaxPro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro.2" />
</httpHandlers>
..
</system.web>
<httpHandlers>
<add verb="POST,GET" path="AjaxPro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro.2" />
</httpHandlers>
..
</system.web>
3.建立一个aspx页面,HTML代码如下
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="test.aspx.cs" Inherits="test" %>
<html >
<head runat="server">
<title> Ajax </title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="Label1" runat="server" Text="标题:"></asp:Label>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br />
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox><br />
<script type="text/javascript">
<!--
function insertDB()
{
var T1=document.getElementById("TextBox1");
var T2=document.getElementById("TextBox2");
log_test.InsertToDB(T1.value,T2.value,Result); //调后台Ajax方法(test为类名),第三个参数是取返回值
}
function Result(GET) //取后台ajax方法的返回值
{
if(GET.value=="ok")
{
alert('提交成功!');
}
else
{
alert('提交失败!');
}
}
-->
</script>
<input id="Button3" type="button" value="提交" onclick="insertDB();" />
</div>
</form>
</body>
</html>
<html >
<head runat="server">
<title> Ajax </title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="Label1" runat="server" Text="标题:"></asp:Label>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br />
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox><br />
<script type="text/javascript">
<!--
function insertDB()
{
var T1=document.getElementById("TextBox1");
var T2=document.getElementById("TextBox2");
log_test.InsertToDB(T1.value,T2.value,Result); //调后台Ajax方法(test为类名),第三个参数是取返回值
}
function Result(GET) //取后台ajax方法的返回值
{
if(GET.value=="ok")
{
alert('提交成功!');
}
else
{
alert('提交失败!');
}
}
-->
</script>
<input id="Button3" type="button" value="提交" onclick="insertDB();" />
</div>
</form>
</body>
</html>
aspx.cs代码如下
public partial class test : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
AjaxPro.Utility.RegisterTypeForAjax(typeof(test)); //注册类名
}
[AjaxPro.AjaxMethod] //ajax方法声明
public string InsertToDB(string T1,string T2)
{
string insertStr = "Insert INTO Notify(N_Title,N_Content) Values (@N_Title,@N_Content)";
SqlParameter[] pars ={
new SqlParameter("@N_Title",SqlDbType.NVarChar,50),
new SqlParameter("@N_Content",SqlDbType.NVarChar),
};
pars[0].Value = T1;
pars[1].Value = T2;
try
{
//DB是项目里处理sql的类
DB.ExecuteNonQuery(DB.ConnectionString, CommandType.Text, insertStr, pars);
return "ok";
}
catch (Exception err)
{
//WriteLog 是项目里写日志的类
WriteLog wl = new WriteLog(err.Message,err.StackTrace,err.Source);
return "fail";
}
}
}
{
protected void Page_Load(object sender, EventArgs e)
{
AjaxPro.Utility.RegisterTypeForAjax(typeof(test)); //注册类名
}
[AjaxPro.AjaxMethod] //ajax方法声明
public string InsertToDB(string T1,string T2)
{
string insertStr = "Insert INTO Notify(N_Title,N_Content) Values (@N_Title,@N_Content)";
SqlParameter[] pars ={
new SqlParameter("@N_Title",SqlDbType.NVarChar,50),
new SqlParameter("@N_Content",SqlDbType.NVarChar),
};
pars[0].Value = T1;
pars[1].Value = T2;
try
{
//DB是项目里处理sql的类
DB.ExecuteNonQuery(DB.ConnectionString, CommandType.Text, insertStr, pars);
return "ok";
}
catch (Exception err)
{
//WriteLog 是项目里写日志的类
WriteLog wl = new WriteLog(err.Message,err.StackTrace,err.Source);
return "fail";
}
}
}
也可根据次方法修改成其他应用