前台用JS无刷新运行后台CS文件中的函数

要实现此功能要使用到AjaxPro.2.dll

第一步,下载AjaxPro.2.dll文件,并在项目中注册.注册方法:在解决方案资源管理器中找到方案名称,在方案名称处右键->添加应用,再选AjaxPro.2.dll文件所在位置.

第二步,在web.config文件中的<httpHandlers></httpHandlers>中加入<add verb="*" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro.2"/>

第三步,在cs文件中的Page_Load中加入:AjaxPro.Utility.RegisterTypeForAjax(typeof(_Default)); 其中的_Default就是该cs的类名,在js中要用到,另外记得写上using AjaxPro;

第四步,在cs中建立要在js中调用的函数,在定义函数前要加入[AjaxPro.AjaxMethod],例如

    public static DataSet GetSqlData()
    {
        DataSet ds = new DataSet();
        SqlCommand commQuery = new SqlCommand();
        commQuery.CommandText = "select ID,Name from GoodCategory";
        ds = MyClass.SqlClass.ds(commQuery);
        return ds;
    }

第五步,在前台建立函数.

        function getDataSet()
        {
            var ds=_Default.GetSqlData().value;
            if (ds!=null && typeof(ds)=="object" && ds.Tables!=null)
            {
                var sArray=new Array();
                sArray[sArray.length] = "<table border=1>";
                for(var i=0; i<ds.Tables[0].Rows.length; i++)
                {
                    sArray[sArray.length] = "<tr>";
                    sArray[sArray.length] = "<td>" + ds.Tables[0].Rows[i].ID + "</td>";
                    sArray[sArray.length] = "<td>" + ds.Tables[0].Rows[i].Name + "</td>";
                    sArray[sArray.length] = "</tr>";
                }
                sArray[sArray.length] = "</table>";               
                var tableDisplay=document.getElementById('divContaine');
                tableDisplay.innerHTML = sArray.join("");
            }
            else
            {
                alert('取从后台返回的ds时错误!');
            }
        }

 

在<body></body>

        <input type="button" value="无刷新读取DataSet" οnclick="getDataSet()" />
        <div id="divContaine" runat="server">

 

补充一点:我用的是AjaxPro.2.dll,版本为9.2.17.1,使用时发现有点小问题,在js获得数据后会报this.onTimeout is not a function 的脚本错误提示,参考网上的数法,先在AjaxPro的官网下载源码,然后打开core.js文件,在timeout:funtcion()里加入try{}...catch{}...finally{},然后再使用build.bat重新编译dll文件,其中build.bat文件中的set ZIP=E:/AjaxProSourceCode/7za904/这里是指免费压缩软件7za.exe所在路径,需要自行更改.core.js文件修改后如下

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值