zoukankan      html  css  js  c++  java
  • AjaxPro使用注意事项与返回数据库中数据时2.0和3.5/4.0的区别(我的心得)

    一、使用Ajaxpro

    在web.config中的<system.web>节点加上
      <httpHandlers >
       <add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro.2"/>
      </httpHandlers>

    在page_load中注册:

    protected void Page_Load(object sender, EventArgs e)
            {
                AjaxPro.Utility.RegisterTypeForAjax(typeof(ExamCalendar.Index));
            }

    定义后台方法:

    [AjaxPro.AjaxMethod]
            public string Say()
            {
               return "你好吗?";

            }

    在前端使用:卸载javascript中:

     ExamCalendar.Index.GetAllExam(Say);

    其中ExamCalendar.Index是这么来的:

    调用的一个函数: 

    function GetAllExam(res) {
                 alert(res.value);

    }

    在页面上写一个按钮触发这一句话即可:

     ExamCalendar.Index.GetAllExam(Say);

     注意了:

    我测试了好长时间才试出来的.

    不能直接使用alert(ExamCalendar.Index.GetAllExam(Say).value);(大家别听网上有一部分人这么建议使用,页面数据取出来了,但是在ie上测试时,数据时出来了,但是过十几秒就会出现如下问题)

    所以初学者要按照我之前写的方法去做,才不会出现这种情况!

    二、在后台连接数据库之后想将数据库中的数据作为一个json型返回,然后在前台反序列化,显示出来。

    可是在.net2.0中就出问题了。

    解决方案如下:

    在3.5、4.0中管用的:

    T_ExamCalendarTableAdapter adapter = new T_ExamCalendarTableAdapter();
                var exam = adapter.GetAllData();
                List<Dictionary<string, string>> list = new List<Dictionary<string, string>>();
                foreach (var row in exam)
                {
                    var Dic = new Dictionary<string, string> {
                    {"ExamSubject",row.ExamSubject},
                    {"LanguageClass",row.LanguageClass},
                    {"ExamTime",row.ExamTime},
                    {"ExamAccurateTime",row.ExamAccurateTime},
                    {"RelatedData",row.RelatedData},
                    {"RelatedDataUrl",row.RelatedDataUrl},
                    {"RelatedCourse",row.RelatedCourse},
                    {"RelatedCourseUrl",row.RelatedCourseUrl},
                    {"Remarks",row.Remarks}
                    };
                    list.Add(Dic);
                }
                JavaScriptSerializer jss = new JavaScriptSerializer();
                return jss.Serialize(list);

    1、在2.0中应该将  foreach (var row in exam)改成:

     foreach (test.DAL.DataSet.T_ExamCalendarRow row in exam)

    2、到网上下载:System.Web.Extensions.dll文件,将其引进来即可使用JavaScriptSerializer了。

  • 相关阅读:
    使用电脑中发现的一些技巧
    容灾备份技术 (容灾备份的等级和技术 )
    网际风客户端版本更新历史 武胜
    判断用户是否在操作 武胜
    最大子段和 武胜
    金质打印通 示例 zt 武胜
    WCF中的集合类型 zt 武胜
    C# 批量插入Mysql zt 武胜
    程序算法与人生选择 zt 武胜
    网际风的通视接口 武胜
  • 原文地址:https://www.cnblogs.com/chenshengtai/p/2118637.html
Copyright © 2011-2022 走看看