`
shirlly
  • 浏览: 1661549 次
  • 性别: Icon_minigender_2
  • 来自: 福州
社区版块
存档分类
最新评论

一个完整的AjaxPro例子

    博客分类:
  • .NET
阅读更多
1.配置文件设置:


<httpHandlers>

<add verb="*" path="*.ashx" type="AjaxPro.AjaxHandlerFactory,AjaxPro.2"/>

</httpHandlers>

2.编写自定义方法(可选,但用这个方法性能可以提高10倍左右,原来注册要300ms,优化后只要10-15ms)
public static void RegAjax(HtmlHead Header,Type type)
        {
            // 用来代替 AjaxPro.Utility.RegisterTypeForAjax(Type type);方法
            string assemblyName = type.FullName + "," + type.Assembly.FullName.Substring(0, type.Assembly.FullName.IndexOf(","));
            if (type.Assembly.FullName.StartsWith("App_Code."))
                assemblyName = type.FullName + ",App_Code";
            Literal l = new Literal();
            l.Text = "\n<script type=\"text/javascript\" src=\"/ajaxpro/prototype.ashx\"></script>\n"
            + "<script type=\"text/javascript\" src=\"/ajaxpro/core.ashx\"></script>\n"
            + "<script type=\"text/javascript\" src=\"/ajaxpro/converter.ashx\"></script>\n"
            + "<script type=\"text/javascript\" src=\"/ajaxpro/" + assemblyName + ".ashx\"></script>\n";
            Header.Controls.Add(l);
        }

public static void RegAjax(HtmlHead Header)
        {
            // 用来代替 AjaxPro.Utility.RegisterTypeForAjax(Type type);方法
            Literal l = new Literal();
            l.Text = "\n<script type=\"text/javascript\" src=\"/ajaxpro/prototype.ashx\"></script>\n"
            + "<script type=\"text/javascript\" src=\"/ajaxpro/core.ashx\"></script>\n"
            + "<script type=\"text/javascript\" src=\"/ajaxpro/converter.ashx\"></script>\n"
            + "<script type=\"text/javascript\" src=\"/ajaxpro/fisha.DAL.PersionDao,fisha.ashx\"></script>\n";
            Header.Controls.Add(l);
        }

//fisha.DAL.PersionDao 用来存方[AjaxPro.AjaxMethod]的类名,命名空间+类名
//fisha.ashx 中的fisha为程序集的名称

3.编写服务器端方法
namespace fisha.DAL
{
    public class PersionDao
    {
        public DataTable GetTable()
        {
            DataTable dt = new DataTable("persion");
            DataColumn dc1 = new DataColumn("name", Type.GetType("System.String"));
            DataColumn dc2 = new DataColumn("age", Type.GetType("System.Int16"));
            dt.Columns.Add(dc1);
            dt.Columns.Add(dc2);

            //以上代码完成了DataTable的构架,但是里面是没有任何数据的
            for (int i = 0; i < 10; i++)
            {
                DataRow dr = dt.NewRow();
                dr["name"] = "小小";
                dr["age"] = 10;
                dt.Rows.Add(dr);
            }
            return dt;
        }

        [AjaxPro.AjaxMethod]
        public IList<MyClass> GetList()
        {
            DataTable tab_data = GetTable();
            IList<MyClass> myClassList = new List<MyClass>();
            if (tab_data.Rows.Count > 0)
            {
                for (int i = 0; i < tab_data.Rows.Count; i++)
                {
                    DataRow dr = tab_data.Rows[i];
                    MyClass item = new MyClass { Name=dr["name"].ToString(), Age=Convert.ToInt16(dr["age"].ToString())};
                    myClassList.Add(item);
                }
            }
            return myClassList;
        }
    }

  public class MyClass
    {
        private string name = string.Empty;
        private int age = 0;

        public string Name
        {
            get { return name; }
            set { name = value; }
        }

        public int Age
        {
            get { return age; }
            set { age = value; }
        }
    }
}

4.新建一个aspx页面 test.aspx

===test.aspx.cs代码==
public partial class test : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            BasicDao.RegAjax(Header, typeof(fisha.DAL.PersionDao)); 
            //用自定义的方法,向客户端注册脚本
        }
    }

===test.aspx代码==
<script language="javascript" type="text/javascript" defer="defer"> 
    function ShowList()
    {
        var res=fisha.DAL.PersionDao.GetList().value;
        var tab=document.getElementById("tab");
        var tblHtml = "";
        if(res)
        {
            //res是服务器返回的一个List<MyClass>集合
            for(var i=0;i<res.length;i++)
            {
                tblHtml+=res[i].Name+"."+res[i].Age+"<br/>";
                //从上面可以看出可以直接调用List<City>集合中的元素和它们的属性
            }
        }
        tab.innerHTML=tblHtml;
    }
</script>

<a href="javascript:ShowList();void(0);">here</a>
    <div id="tab">
    </div>

转自:http://www.cnblogs.com/ie421/archive/2008/08/10/1254208.html
分享到:
评论

相关推荐

    AjaxPro Demo

    这个"AjaxPro Demo"是一个示例集合,旨在帮助开发者更好地理解和使用AjaxPro库,从而提升用户体验,减少页面刷新,实现异步数据交换。 首先,我们要了解AjaxPro的核心特性。它提供了一种简单的方式来将服务器端的...

    ajax框架ajaxpro

    AjaxPro是一个基于JavaScript和.NET Framework的Ajax框架,它允许开发者创建高度交互的、响应迅速的Web应用程序,无需离开浏览器即可实现页面的部分更新。Ajax(Asynchronous JavaScript and XML)技术的核心在于...

    NET 编译生成DLL文件

    在提供的部分内容中,出现了一个编译命令的例子: ```shell csc /t:library SqlDbHelper.cs // 输出 DLL 文件 SqlDbHelper.dll ``` 这里 `csc` 是 C# 编译器的命令行工具,`/t:library` 参数指定了编译的目标类型...

    数分1.11Tableau安装及使用教程

    数分1.11Tableau安装及使用教程

    软考信息系统运行管理员:涵盖信息系统运维、安全、架构及技术标准的多维考核

    内容概要:本文主要围绕着计算机信息系统运行管理员考试展开讨论,详细介绍了有关信息系统在运维中的各种问题及其应对方案。具体而言,文中不仅列举出了不同类型的信息系统对其本身的要求,而且还深入探讨了运维管理中面临的挑战和技术手段。另外,文章特别提及了一些特定类型的系统(例如政府系统和财务管理等),并指明在面对它们时需要考虑的安全级别、稳定性等关键要素;同时也强调了良好的文档管理和合理的设施运维对象划分,以及软硬件的选择与维护。同时文章还讲解了多种工具的作用(比如Nagios),以及硬件如计算机机房和UPS的具体规格和要求;并且讲述了关于变更管理和发布管理等的概念与实际应用场景。此外,在最后一部分内容里也谈到了云架构及其各个构成部分。 适用人群:本文适合即将参加软考信息运行管理员认证的专业人士,也适用于希望深入了解信息系统运作、管理和维护的技术从业者和相关领域的管理人员。 使用场景及目标:本资料旨在辅助考生掌握信息系统的高效、稳健地构建与运营所需的知识和技术,帮助他们顺利通过软考的同时提升实战经验;同时也为企业信息化建设提供了宝贵的理论基础和实践指南。 其他说明:虽然本文聚焦于特定职业资格证书

    伪知识图谱:元路径引导检索与图内文本技术,助力RAG增强型LLM

    大型语言模型(LLMs)的出现彻底改变了自然语言处理。然而,这些模型在从大量数据集中检索精确信息时面临挑战。检索增强生成(RAG)旨在通过结合外部信息检索系统来增强LLMs,从而提高响应的准确性和上下文性。尽管有所改进,RAG在高容量、低信息密度数据库中的全面检索仍然存在困难,并且缺乏关系意识,导致答案碎片化。 为了解决这一问题,本文介绍了伪知识图谱(PKG)框架,该框架通过集成元路径检索、图内文本和向量检索到LLMs中,旨在克服这些限制。通过保留自然语言文本并利用各种检索技术,PKG提供了更丰富的知识表示并提高了信息检索的准确性。使用Open Compass和MultiHop-RAG基准进行的广泛评估表明,该框架在管理和处理大量数据及复杂关系方面具有有效性。

    zedr_clean-code-python_1741402803.zip

    python学习教程

    kibana-7.10.2 docker镜像压缩包,百度网盘

    请到网盘中自取压缩包,此包为kibana-7.10.2 镜像压缩包,是通过现有镜像导出来的,主要是为了解决有些机器无法连接外网,导致无法下载镜像 加载镜像: docker load -i kibana-7.10.2.tar 查看镜像: docker images 备注:elk此镜像配套资源,相同版本的elasticsearch和logstash,请在我的资源中搜索其他镜像

    UniApp开发一个简单的记事本应用文字教程

    UniApp开发一个简单的记事本应用文字教程

    基于Andorid的音乐播放器项目设计(QQ音乐).zip

    基于Andorid的音乐播放器项目设计(QQ音乐)实现源码,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。

    编程语言_Python_Cookbook_管理工具_1741398354.zip

    python学习资源

    React Developer Tools在谷歌拓展的应用商城下载不了任何解决

    React Developer Tools在谷歌拓展的应用商城下载不了任何解决

    【毕业设计-java】springboot-vue健身房管理系统源码(完整前后端+mysql+说明文档+LunW).zip

    【毕业设计-java】springboot-vue健身房管理系统源码(完整前后端+mysql+说明文档+LunW).zip

    网络通信_批量IP管理_远程命令执行_工具_1741401998.zip

    python学习资源

    在Anaconda中创建和配置PyTorch环境的详细步骤

    本文提供了一套完整的指南,帮助用户在Anaconda中配置PyTorch环境,便于深度学习开发。首先,用户需要确保安装Anaconda,并通过Anaconda Prompt创建一个新的虚拟环境,以隔离项目依赖。创建好环境后,用户可以根据所用操作系统以及CUDA版本,选择适合的安装命令。对于Windows和Linux用户,提供了安装PyTorch、TorchVision和TorchAudio的具体命令,包括CUDA Toolkit的版本选择。macOS用户则可以安装仅支持CPU的版本。安装完成后,通过简单的Python代码验证PyTorch是否成功安装以及GPU的可用性。文中还列出了常见问题及解决方法,帮助用户快速排查安装过程中可能遇到的障碍。通过遵循这些步骤,用户可以顺利搭建起一个专属的PyTorch开发环境,提升深度学习的工作效率和体验。

    药品同步线程池模式_自动超时退出机制_1741403804.zip

    python学习教程

    数据结构学习指南:从资源到实战全方位提升编程技能

    内容概要:本文汇总了学习数据结构的相关资源,旨在帮助读者系统化地理解和掌握这一计算机科学的基础概念。文中首先列举了一系列权威在线学习资源,包括知名教授的主页、在线编程平台LeetCode和技术博客,这些资源不仅理论丰富,还提供大量的实例和练习机会。接着推荐了几本经典的书籍,如《算法导论》、《大话数据结构》,适合不同程度的学习者深入理解算法和数据结构的细节。此外,还特别提及了几门高质量的网络课程,能够为初学者提供清晰的学习路径。最后强调通过动手实践,如动态数组的C语言实现以及算法题目的刷题练习,是提高编程技能的有效途径。 适合人群:对于想要系统学习并掌握数据结构的程序员及爱好者。 使用场景及目标:适用于个人自学或者课堂教学,目的是通过综合使用理论学习、实践操作来达到对数据结构和算法有全面深刻的认识。 其他说明:本文提供了丰富的链接,让读者可以直接访问各个优质教育资源进行深度探究,鼓励大家积极参与讨论,相互分享心得体验,形成良好的互动交流氛围。

    QMI8658 Datasheet

    QMI8658 Datasheet

Global site tag (gtag.js) - Google Analytics