博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
『ExtJS』表单(二)表单行为与Asp.NET页面的消息回复
阅读量:2784 次
发布时间:2019-05-13

本文共 7521 字,大约阅读时间需要 25 分钟。

几点说明


  1. 这里所谓的Asp.NET后台,是指Asp.NET页面的aspx.cs文件的代码
  2. 请不要直接复制代码,由于各人环境不同,可能会产生异常
  3. 本篇中的代码说明中,将省略之前文章中所描述过的内容
  4. 下一篇记录如何实现表单控件事件的侦听

 

 

 

最简单的提交与后台消息回复


IDE: VS2010 SP1

ExtJS版本:3.4.0

 

    『ExtJS』表单(二)表单行为与Asp.NET页面的消息回复    
using System;namespace csdemo.extjs{    public partial class jsonresponse : System.Web.UI.Page    {        protected void Page_Load(object sender, EventArgs e)        {            Response.Write("{success: true}");        }    }}

说明:

  1. buttons 配置项是用于配置表单按钮的,之后的操作都是利用表单按钮的handler来进行的
  2. frm.getForm().submit() 与 frm.getForm.reset() 分别对应于Html表单的submit与reset操作
  3. 使用getForm用于获取对应表单
  4. success 与 failure 分别对应表单提交的两个状态,其后可跟函数,我这里放的是匿名函数。

 

 

 

效果图

 

 

 

 

 

 

带有回执消息的实现


    『ExtJS』表单(二)表单行为与Asp.NET页面的消息回复    
using System;using System.Web.Script.Serialization;namespace csdemo.extjs{    public partial class jsonresponse : System.Web.UI.Page    {        protected void Page_Load(object sender, EventArgs e)        {            int resMode;            JavaScriptSerializer js = new JavaScriptSerializer();            responseMsg resMsg = new responseMsg();            resMode = 2;            switch (resMode)            {                case 1:                    resMsg.success = false;                    resMsg.errorMsg = "Test the Error Message";                    Response.Write(js.Serialize(resMsg));                    break;                case 2:                    blogEssay bl = new blogEssay();                    bl.success = true;                    bl.title = "『ExtJS』表单(二)表单行为与Asp.NET页面的消息回复";                    bl.author = "Aaron";                    bl.contentEssay = "test";                    bl.site = "http://www.cnblogs.com/sitemanager/";                    Response.Write(js.Serialize(bl));                    break;                default:                    resMsg.success = false;                    resMsg.errorMsg = "请先传入参数!";                    Response.Write(js.Serialize(resMsg));                    break;            }        }    }    public class responseMsg    {        private bool _success;        public bool success        {            get { return _success; }            set { _success = value; }        }        private string _errorMsg;        public string errorMsg        {            get { return _errorMsg; }            set { _errorMsg = value; }        }    }    public class blogEssay : responseMsg    {        private string _title;        public string title        {            get { return _title; }            set { _title = value; }        }        private string _author;        public string author        {            get { return _author; }            set { _author = value; }        }        private string _email;        public string email        {            get { return _email; }            set { _email = value; }        }        private string _site;        public string site        {            get { return _site; }            set { _site = value; }        }        private int _publishNumber;        public int publishNumber        {            get { return _publishNumber; }            set { _publishNumber = value; }        }        private string _abstractEssay;        public string abstractEssay        {            get { return _abstractEssay; }            set { _abstractEssay = value; }        }        private DateTime _publishDate;        public DateTime publishDate        {            get { return _publishDate; }            set { _publishDate = value; }        }        private string _contentEssay;        public string contentEssay        {            get { return _contentEssay; }            set { _contentEssay = value; }        }    }}

说明:

  1. 使用getForm().findField(‘表单内控件的name属性').setValue(想要设置的值)
  2. a.result 代表后台回传来的结果集
  3. a.result.xxxx 表示结果集中的某个指定的JSON数据项名的值
  4. 使用JavaScriptSerializer对象来序列化相应类型为JSON数据格式,用于传回给前台

 

效果图

 

 

 

 

前台向后台传参数


    『ExtJS』表单(二)表单行为与Asp.NET页面的消息回复    
using System;using System.Web.Script.Serialization;namespace csdemo.extjs{    public partial class jsonresponse : System.Web.UI.Page    {        protected void Page_Load(object sender, EventArgs e)        {            int resMode;            JavaScriptSerializer js = new JavaScriptSerializer();            responseMsg resMsg = new responseMsg();            blogEssay bl = new blogEssay();            if (Request["resMode"] != null)            {                resMode = Convert.ToInt32(Request["resMode"]);            }            else            {                resMode = 2;            }            switch (resMode)            {                case 1:                    resMsg.success = true;                    resMsg.errorMsg = "表单接收成功!";                    Response.Write(js.Serialize(resMsg));                    break;                case 2:                    bl.success = true;                    bl.title = "『ExtJS』表单(二)表单行为与Asp.NET页面的消息回复";                    bl.author = "Aaron";                    bl.contentEssay = "test";                    bl.site = "http://www.cnblogs.com/sitemanager/";                    Response.Write(js.Serialize(bl));                    break;                case 3:                    resMsg.success = true;                    resMsg.errorMsg = "Thank you for your reading!";                    Response.Write(js.Serialize(resMsg));                    break;                case 4:                    resMsg.success = true;                    resMsg.errorMsg = "参数传入成功!";                    Response.Write(js.Serialize(resMsg));                    break;                default:                    resMsg.success = false;                    resMsg.errorMsg = "请先传入参数!";                    Response.Write(js.Serialize(resMsg));                    break;            }        }    }    public class responseMsg    {        private bool _success;        public bool success        {            get { return _success; }            set { _success = value; }        }        private string _errorMsg;        public string errorMsg        {            get { return _errorMsg; }            set { _errorMsg = value; }        }    }    public class blogEssay : responseMsg    {        private string _title;        public string title        {            get { return _title; }            set { _title = value; }        }        private string _author;        public string author        {            get { return _author; }            set { _author = value; }        }        private string _email;        public string email        {            get { return _email; }            set { _email = value; }        }        private string _site;        public string site        {            get { return _site; }            set { _site = value; }        }        private int _publishNumber;        public int publishNumber        {            get { return _publishNumber; }            set { _publishNumber = value; }        }        private string _abstractEssay;        public string abstractEssay        {            get { return _abstractEssay; }            set { _abstractEssay = value; }        }        private DateTime _publishDate;        public DateTime publishDate        {            get { return _publishDate; }            set { _publishDate = value; }        }        private string _contentEssay;        public string contentEssay        {            get { return _contentEssay; }            set { _contentEssay = value; }        }    }}

 

说明:

  1. 在submit()函数中,可以使用  来重新指定表单回传的目标页面
  2. 可以使用 params 来指定回传的参数,默认为post方式
  3. 有后台Asp.NET中,直接使用 Request[‘参数名 ']来获取传入的值
  4. 注意,从前台来的值,一般情况下是string型的,可能会需要进行一些格式上的转换后,才能使用

 

 

效果图

你可能感兴趣的文章
一名北理工学子的心路历程
查看>>
Silverlight 3 新特性
查看>>
白盒测试体系的探索
查看>>
web性能测试术语小集合
查看>>
网站架构探索(3)---负载均衡的方式
查看>>
083 过滤字符串中的某个字符
查看>>
095 php如何提高网页加载速度?
查看>>
面向对象编程风格 VS 基于对象编程风格(boost::bind/function)
查看>>
Android数据存储方式之SharedPreference
查看>>
学习C++模板元编程(1)
查看>>
proxy
查看>>
详解Android中AsyncTask的使用
查看>>
动态规划——最优二叉查找树
查看>>
不再依赖A*,利用C++编写全新寻路算法
查看>>
MQTT---HiveMQ源码详解(十三)Netty-MQTT消息、事件处理(源码举例解读)
查看>>
MQTT---HiveMQ源码详解(十六)TopicTree
查看>>
Objective-C语法之代码块(block)的使用
查看>>
UltraShadow 技术
查看>>
Leetcode:Longest Palindromic Substring QuestionEditorial Solution
查看>>
Leetcode:正则表达式.
查看>>