|
form¿ÖÅÂÊÇWeb¿ª·¢ÖÐ×î³£ÓõĿؼþÁË£¬Extjs¶ÔÆÕͨµÄhtml form½øÐÐÁËһЩ·â×°£¬Ê¹Æä¾ßÓлù±¾µÄÍâ¹ÛºÍһЩ¼ò±ãµÄºÍ·þÎñÆ÷½øÐÐͨÐŵķ½·¨¡£
ExtjsÖÐµÄ±íµ¥×é¼þÊÇExt.form.BasicForm£¬²»¹ý×î¼òµ¥×î³£ÓõÄÊÇExt.form.FormPanel¿Ø¼þ£¬Ëü¼Ì³Ð×ÔPanel£¬¾ßÓÐÒ»¶¨µÄ½çÃæÏÔʾ¿ØÖÆÄÜÁ¦£¬ËüÆäÖаüº¬×ÅÒ»¸öBasicForm¶ÔÏó£¬ÓÃÀ´Ö´ÐÐÏò·þÎñÆ÷Ìá½»£¬¼ÓÔصȶ¯×÷¡£ExtjsÒ²¶Ô³£ÓõÄhtml±íµ¥Ïî½øÐÐÁË·â×°£¬ÌṩÁËһЩ¶îÍâµÄ¹¦ÄÜ£¬±ÈÈçÊý¾ÝÑéÖ¤¡£Êµ¼ÊʹÓõÄʱºòÖ»ÒªÏòFormPanelÖÐÌí¼ÓÕâЩ±íµ¥Ïî¼´¿É¡£³£¼ûµÄ±íµ¥ÏîÓУ¬TextField£¬NumberField,Radio,CheckBoxµÈ¡£
ÏÂÃæͨ¹ýÒ»¸öÀý×ÓÀ´½éÉÜ»ù±¾FormµÄʹÓá£ÓÉÓÚʹÓÃFormÒªºÍ·þÎñÆ÷¶Ë³ÌÐò½»»¥£¬·½±ãÆð¼û£¬Ð½¨Ò»¸öasp.netÕ¾µã£¬°ÑextjsµÄËùÓÐÎļþ¶¼Ìí¼Óµ½Õ¾µãÏÂÃ棬ÔÙн¨Ò»¸öforms.htmÎļþ£¬×÷Ϊ´Ë´ÎµÄÑùÀýÎļþ£¬ÈçÏÂͼ£º ÏÂÃæΪforms.htmÌí¼Ó´úÂ룬Ö÷ÒªÊÇΪFormPanelÌí¼Ó±íµ¥Ï ¸´ÖÆ´úÂë ´úÂëÈçÏÂ: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Extjs FormPanel</title> <link rel="Stylesheet" type="text/css" href="ext-3.1.0/resources/css/ext-all.css" /> <style type="text/css"> .allow-float{clear:none !important;} .stop-float{ clear:both !important;} .float-left{float:left;} </style> <script type="text/javascript" src="ext-3.1.0/adapter/ext/ext-base.js"></script> <script type="text/javascript" src="ext-3.1.0/ext-all.js"></script> <script type="text/javascript"> Ext.onReady(function() { Ext.BLANK_IMAGE_URL = 'ext-3.1.0/resources/images/default/s.gif'; Ext.QuickTips.init(); //³õʼ»¯ÐÅÏ¢Ìáʾ¹¦ÄÜ var loginForm = new Ext.form.FormPanel({ title: 'A Simple FormPanel', height: 300, width: 300, frame: true, labelSeparator: ':', labelWidth: 60, labelAlign: 'right', applyTo: 'form', items: [ new Ext.form.TextField({ id: 'Name', fieldLabel: 'Name', allowBlank: false, blankText: '±ØÌî×Ö¶Î', msgTarget: 'qtip' }), new Ext.form.TextField({ id:'Password', fieldLabel: 'Password', allowBlank: false, inputType: 'password', blankText: '±ØÌî×Ö¶Î', //msgTarget: 'qtip' msgTarget: 'side' }), new Ext.form.TextField({ id: 'email', fieldLabel: 'E-Mail', allowBlank: false, selectOnFocus: true, inputType: 'Text', msgTarget: 'side', emptyText: '±ØÌî×Ö¶Î', regex: /^([\w]+)(.[\w]+)*@([\w-]+\.){1,5}([A-Za-z]){2,4}$/, regexText: 'Email ¸ñʽ²»ÕýÈ·' }), new Ext.form.NumberField({ id: 'age', fieldLabel: 'Age', allowNegative: false, decimalPrecision: 0, maxValue: 100, maxText: 'ÊäÈëµÄÊý×Ö×î´óÊÇ100' }), new Ext.form.TextArea({ id: 'remark', fieldLabel: 'Remark', width: 200 }), new Ext.form.Radio({ name: 'sex', itemCls: 'float-left', clearCls: 'allow-float', fieldLabel: 'Sex', boxLabel: 'Male' }), new Ext.form.Radio({ name: 'sex', clearCls: 'stop-float', boxLabel: 'Female', hideLabel: true }), new Ext.form.Checkbox({ name: 'hobby', clearCls: 'allow-float', itemCls: 'float-left', boxLabel: 'Football', fieldLabel: 'Hobby' }), new Ext.form.Checkbox({ name: 'hobby', clearCls: 'allow-float', itemCls: 'float-left', hideLabel: true, boxLabel: 'Ping-Pang' }), new Ext.form.Checkbox({ name: 'hobby', clearCls: 'stop-float', hideLabel: true, boxLabel: 'Basketball' }) ], buttons: [new Ext.Button({ text: 'OK', handler: login }) ] }); function login() { loginForm.getForm().submit({ clientValidation: true, waitMsg: 'Please wait...', waitTitle: 'Hint', url: 'simpleForm.ashx', method: 'GET', success: function(form, action) { Ext.Msg.alert('Hint', 'Get Success:Your Name is '+action.result.msg.Name+" Pwd: "+action.result.msg.Password); }, failure: function(form, action) { Ext.Msg.alert('Hint', 'Get Failed' + action.failureType); } }); }; }); </script> </head> <body> <div id="form"> </div> </body> </html> ¹¹ÔìFormPanelµÄʱºòÐèҪͨ¹ýapplyToÊôÐÔÖ¸¶¨½«Õâ¸öPanel¼ÓÔص½Ê²Ã´ÇøÓò£¬applyToµÄÖµÒ»°ãÊÇdivµÄid¡£FormPanelµÄitemsÊôÐÔ¾ÍÊÇÒ»¸ö±íµ¥ÏîµÄÊý×é¡£TextField¿ÉÒÔÖ¸¶¨ÊÇ·ñÔÊÐíΪ¿Õ£¬NumberFieldÒ²¿ÉÒÔ£¬»¹¿ÉÒÔÖ¸¶¨×î´óÖµ¡¢×îСֵµÄÏÞÖÆ¡£ÖµµÃ×¢ÒâµÄÊÇÕâЩ±íµ¥ÏîÖеÄitemClsºÍclearClsÊôÐÔ£¬¿ÉÒÔͨ¹ýÕâЩÊôÐÔ¸ø±íµ¥Ï¼ÓcssÒÔʵÏÖ×Ô¼ºÏëÒªµÄЧ¹û¡£ÆäÖÐitemClsÊǸ½¼ÓÔÚ±íµ¥Ïî±¾ÉíÉÏÃæµÄ£¬clearClsÊǸ½¼ÓÔÚÒ»¸ö½ôÌù×Å¸Ã±íµ¥ÏîµÄ¿Õ°×divÉÏÃæµÄ¡£buttonsÊôÐÔÖпÉÒÔÌí¼Ó°´Å¥¶ÔÏó¡£ÔÝʱºöÂÔÌá½»º¯Êý£¬µ½ÏÖÔÚΪֹ£¬Ò»¸ö±íµ¥ÒѾÍê³É£º Õâ¸ö±íµ¥¾ßÓнÏÒ»ÖµÄÍâ¹Û£¬Ò²¾ßÓÐÁ˳£¼ûµÄÑéÖ¤¹¦ÄÜ£¬¹ØÓÚ¸ü¶àextjsµÄ±íµ¥ÑéÖ¤¹¦ÄÜ£¬ÒÔºóÔÙ½éÉÜ¡£ÏÂÃæ½éÉÜ±íµ¥µÄÌá½»¡£±íµ¥µÄÌá½»ÒÀ¿¿µÄÊÇBasicformµÄsubmit·½·¨¡£¿ÉÒÔͨ¹ýµ÷ÓÃFormPanelµÄgetForm·½·¨»ñµÃBasicForm£¬ÔÙµ÷ÓÃËüµÄsubmit·½·¨£¬submit·½·¨ÖÐÖ÷ÒªµÄ²ÎÊýÊÇÒªÌá½»µÄurlµØÖ·£¬Ìá½»µÄ·½Ê½GET/POST£¬ÒÔ¼°Ìύʧ°ÜºÍ³É¹¦ºóµÄÁ½¸ö´¦Àíº¯ÊýsucessºÍfailure¡£ÕâÁ½¸ö´¦Àíº¯Êý¶¼ÓÐÁ½¸ö²ÎÊý£¬Ò»¸öÊǵ±Ç°µÄform»¹ÓÐÒ»¸öÊÇAction¶ÔÏó£¬Action¶ÔÏóÖÐÖ÷Òª¼Ç¼ÁËÕâ´ÎÌá½»£¨Ò²¿ÉÒÔÊǼÓÔØ£©µÄÖ÷ÒªÐÅÏ¢£¬Ö÷ÒªÓÐʧ°ÜÀàÐÍfailureType,ºÍ·þÎñÆ÷¶ËµÄ·µ»ØÐÅÏ¢result¡£failureType¿ÉÒÔÊÇAction.CLIENT_INVALID,CONNTECT_FALIURE,LOAD_FALURE,SERVER_INVALID, ÕâЩ¶¼ÊÇÔÚActionÖж¨ÒåµÄ¹«¹²ÊôÐÔ£¬Êµ¼ÊÉÏÊÇÒ»¸östring¡£ÏÂÃæÖ÷Òª½éÉÜ´Ó·þÎñÆ÷·µ»ØµÄresult£¬extjs¶ÔÓÚ´Ó·þÎñÆ÷¶Ë·µ»ØµÄÐÅÏ¢ÓÐ×űȽÏÑϸñµÄÒªÇó£¬Ä¬ÈÏÇé¿öÏ£¬·þÎñÆ÷¶Ë·µ»ØµÄÓ¦¸ÃÊÇÒ»¸öjson×Ö·û´®£¬ÇÒÆäÖÐÓÐÒ»¸öÊôÐÔÊÇsuccess£¬ÀàÐÍÊÇboolean£¬ÓÃÀ´Ö¸Ê¾´Ë´ÎÌá½»³É¹¦£¬ÆäÓàµÄÊôÐÔ¿ÉÒÔÊÇÆäËû×Ô¶¨ÒåµÄ·µ»ØÊý¾Ý¡£
ÀýÈçÏÂÃæ¾ÍÊÇÒ»¸ö·þÎñÆ÷¶Ë·µ»ØµÄÑùÀý£º ¸´ÖÆ´úÂë ´úÂëÈçÏÂ: { "success":true, // note this is Boolean, not string "msg":"Updated Successfully!" } ÏÂÃæΪÕâ¸öhtmÒ³Ãæ±àдһ¸ö·þÎñÆ÷ÏìÓ¦Ò³Ã棬н¨Ò»¸öGeneric HandlerÒ³Ãæ SimpleForm.ashx£¬Õâ¸öÏìÓ¦ºÜ¼òµ¥£¬¾ÍÊÇ°ÑÌá½»ÉÏÀ´µÄÐÕÃûºÍÃÜÂëÔÙ·µ»Ø¸ø¿Í»§¶Ë¡£Òª·µ»ØµÄÊý¾ÝÓ¦¸ÃÊÇÀàËÆÓÚ£º
{success:true,msg:{Name:xxx,Password:xxxx}}
Ó¦´Ë±àд´ËÏìÓ¦ÈçÏ£º ¸´ÖÆ´úÂë ´úÂëÈçÏÂ: public void ProcessRequest (HttpContext context) { string s = context.Request.Params["Name"]; string pwd = context.Request.Params["Password"]; if (s == null) s = "null"; string result = "{success:true,msg:{Name:\""+s+"\",Password:\""+pwd+"\"}}"; context.Response.ContentType = "text/plain"; context.Response.Write(result); } ÔËÐгÌÐò£¬Ìîд±ØÒªµÄÐÅÏ¢£¬µã»÷OK°´Å¥£¬¿ÉÒÔ¿´µ½´Ó·þÎñÆ÷¶Ë·µ»ØµÄÊý¾Ý£º ×îºó½éÉÜÏÂÈçºÎ´Ó·þÎñÆ÷¶Ë»ñµÃ±íµ¥µÄÐÅÏ¢²¢ÇÒÌî³ä¿Í»§¶Ë±íµ¥¡£ÒªÌî³ä¿Í»§¶Ë£¬Ê¹ÓõÄÊÇBasicFormµÄload·½·¨£¬¸Ã·½·¨Ä¬ÈÏÒªÇó´Ó·þÎñÆ÷¶Ë»ñµÃÒ»¸öjson×Ö·û´®£¬ºÍsubmitÀàËÆ£¬Ò²ÐèÒªÒ»¸ösuccessÊôÐÔ£¬ÆäÓàµÄÊÇ±íµ¥×Ö¶ÎÐÅÏ¢£¬Ö»ÒªÊôÐÔµÄÃû×ÖºÍ±íµ¥ÏîµÄÃû×ÖÏàͬ£¬Õâ¸öÌî³ä¹ý³ÌÊÇ×Ô¶¯Íê³ÉµÄ£¬ÕâµãºÜ·½±ã¡£ÎªÕâ¸ö±íµ¥Ìí¼ÓÒ»¸öload°´Å¥£¬ÓÃÀ´´Ó·þÎñÆ÷»ñÈ¡±íµ¥ÐÅÏ¢£º ¸´ÖÆ´úÂë ´úÂëÈçÏÂ: buttons: [new Ext.Button({ text: 'OK', handler: login }), new Ext.Button({ text: 'Load', handler: loadData }) ]loadDataµÄ·½·¨Îª£ºfunction loadData() { loginForm.getForm().load({ clientValidation: false, waitMsg:'Loading...', url: 'simpleFormLoad.ashx', method: 'GET' }); }×¢Ò⣬ÓÉÓÚloadÊý¾Ý²»ÐèÒª½øÐпͻ§¶ËÑéÖ¤£¬ËùÒÔ½«clientValidationÉèΪfalse¡£ÏàÓ¦µÄsimpleFormLoad.ashx·þÎñÆ÷¶Ë´úÂëΪ£º
public void ProcessRequest (HttpContext context) { context.Response.ContentType = "text/plain"; context.Response.Write("{success:true,data:{Name:\"ServerReply\",age:10,email:\"yinzixin1985@hotmail.com\"}}"); } µã»÷Load°´Å¥£¬Ä㽫¿´µ½£º
Êý¾Ý˳ÀûµÄ´Ó·þÎñÆ÷¶Ë·µ»Ø²¢ÇÒ×Ô¶¯Ìî³äµ½±íµ¥ÖС£
±¾ÎÄÖ÷Òª½éÉÜextjs±íµ¥µÄ»ù±¾¸ÅÄÒÔ¼°ÈçºÎÓë·þÎñÆ÷½øÐмòµ¥µÄ½»»¥¡£ÕâЩÄÚÈݲ¢²»×ãÒÔÓ¦¸¶Êµ¼ÊÐèÇó£¬ÏÂÃ漸ƪÎÄÕ»á½éÉÜһЩ¸ü¼ÓʵÓõÄÄÚÈÝ¡£ |
|