一个Ajax的例子
一个Ajax的例子
总述
最近公司有个项目,是用B/S结构实现呼叫中心,因为以前有C/S结构的程序,所以只能在后来开发的程序去套接原来的程序。坐席板卡厂家提供了一个OCX,意思用<Object>把OCX引入到网页中进通与后台CTI通讯,我这里的工作就是跟据它返回的事件来写数据库。看起来似乎没有什么技术上障碍了,但来后的实验中发现了一个大问题。在网页中调用OCX的方法全用的是脚本语言(我用的是JavaScript),但在ASP.NET中,提交数据库的搞作是要刷新页面的。这样,当坐席人员签到后,再向数据库服务器端提交数据时,页面刷新,由于脚本在页面刷新后,所有的脚本代码要重新加载一遍,这样,坐席就回到了没签到状态。这样,就有了个冲突,坐席状态不想页面刷新,写数据库要页面刷。
怎么办,幸好,“山西DotNet俱乐部”QQ群的“天赐神兵”说用Ajax。说是这个可以满足我的需求。于是就看看了,把所得结果共享给大家。
本例是引用了Ajax.net的一个dll做的。首先在vs2005的项目中引用一个AjaxPro.2.dll运行库。
1、 aspx页面代码
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<script language="javascript" src="log.js">
</script>
</head>
<body>
<object id= "xx" classid="clsid:CF850467-2EFA-490D-8702-59905FBA32CB" name="ss" >
</object>
<form name="form1" runat="server" id="Form1" >
<input onClick="WriData();" class="border" type="button" value="写数据库" name="sub">
</form>
</body>
</html>
在这里,只需调用JS里的一个文件就可以了。其中<object>部份是用来引于ocx的,它的方法写入JS文件中,这里它的方法就不写了。
2、 JS页面代码
function add(bz)
{
test.WriData(bz,show);
}
function show(val)
{
Alert(val.value);
}
其中test,cs文件中的类名,WriData为cs文件中的函数,bz为参数。Show()方法主要是提示。
3、 cs文件代码
using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class log : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
AjaxPro.Utility.RegisterTypeForAjax(typeof(log));
}
[AjaxPro.AjaxMethod]
public string WriData(int bz)
{
string conn = "server=.;database=DataBaseName;uid=sa;pwd=123456";
SqlConnection con = new SqlConnection(conn);
con.Open();
SqlCommand com = new SqlCommand();
com.Connection = con;
com.CommandText = "update zxdab set zbbz='" + bz + "',listen='" + bz + "'";
com.ExecuteNonQuery();
return "写数据库成功" ;
}
}
其中 AjaxPro.Utility.RegisterTypeForAjax(typeof(test));是用来注册cs代码中的test类的。每个自定议方法前必需加[AjaxPro.AjaxMethod],WriData()方法是用来写数据库的。
4、 Webconfig文件的修改
在<system.web>下加入
<httpHandlers>
<add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro.2"/>
</httpHandlers>
这里是用来注册httpHandlers的。
好了,收工,这样一个不
《asp.net core精要讲解》 https://ke.qq.com/course/265696
《asp.net core 3.0》 https://ke.qq.com/course/437517
《asp.net core项目实战》 https://ke.qq.com/course/291868
《基于.net core微服务》 https://ke.qq.com/course/299524