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>
 
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>

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";
        }
    }
  
}

也可根据次方法修改成其他应用

posted @ 2007-07-22 19:36  Anson2020  阅读(563)  评论(0编辑  收藏  举报