Ext常用案例.docx

上传人:b****6 文档编号:8058876 上传时间:2023-01-28 格式:DOCX 页数:17 大小:47.28KB
下载 相关 举报
Ext常用案例.docx_第1页
第1页 / 共17页
Ext常用案例.docx_第2页
第2页 / 共17页
Ext常用案例.docx_第3页
第3页 / 共17页
Ext常用案例.docx_第4页
第4页 / 共17页
Ext常用案例.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

Ext常用案例.docx

《Ext常用案例.docx》由会员分享,可在线阅读,更多相关《Ext常用案例.docx(17页珍藏版)》请在冰豆网上搜索。

Ext常用案例.docx

Ext常用案例

ExtJs备忘录

(1)——Form表单

(一)[控件使用]

前言

  ExtJS接触至今已有4个月(5.1-9.1),小有心得,由于公司短期内并没有打算采用,所以备忘之以备他日之需。

虽然网上资料不少,但学起来仍感费劲,所以还是想以自己的方式来与众分

系列

  1.  ExtJs备忘录

(1)——Form表单

(一)[控件使用]

版本

  Ext3.0.0

正文

  一、效果图

    先用美图勾引那些驻足观望之人:

    

  二、代码讲解

    如果项目中大量采用ExtJS做前端,我建议采用PageBase方式来引用和使用它。

    2.1  目录结构

      

        项目中使用Ext并不需要把整个Ext拷贝到项目中,只需要把resources整个目录和如下几个人间拷贝到项目中即可:

        ext-3.0.0\adapter\ext\ext-base.js

        ext-3.0.0\ext-all.js

        ext-3.0.0\src\locale\ext-lang-zh_CN.js

    2.1  PageBase.cs

usingSystem;

usingSystem.Collections.Generic;

usingSystem.Text;

usingSystem.Web.UI.HtmlControls;

usingSystem.Reflection;

usingExtJS.Ext;

///

///主要用于全局控制

///

publicclassPageBase:

System.Web.UI.Page

{

#regionMemberVariable

///

///路由搜索方法:

search

///

publicconststringROUTE_METHOD_SEARCH="search";

///

///路由修改方法:

modify

///

publicconststringROUTE_METHOD_MODIFY="modify";

///

///路由删除方法:

remove

///

publicconststringROUTE_METHOD_REMOVE="remove";

///

///路由添加方法:

add

///

publicconststringROUTE_METHOD_ADD="add";

///

///路由详情方法:

detail

///

publicconststringROUTE_METHOD_DETAIL="detail";

#endregion

#regionMethod

#regionoverridemethod

///

///预初始化,在初始化页面OnInit事件前触发

///

///

protectedoverridevoidOnPreInit(EventArgse)

{

#region权限认证

#endregion

#region路由请求

//路由请求

stringreqMethod=Request.QueryString["method"];

if(!

string.IsNullOrEmpty(reqMethod))

{

switch(reqMethod.ToLower())

{

caseROUTE_METHOD_MODIFY:

Response.Write(Modify());

break;

caseROUTE_METHOD_SEARCH:

Response.Write(Search());

break;

caseROUTE_METHOD_REMOVE:

Response.Write(Remove());

break;

caseROUTE_METHOD_ADD:

Response.Write(Add());

break;

caseROUTE_METHOD_DETAIL:

Response.Write(Detail());

break;

default:

//反射

MethodInfomethod=this.GetType().GetMethod(reqMethod);

if(method!

=null)

{

Response.Write(method.Invoke(this,null));

}

break;

}

End();

}

#endregion

base.OnPreInit(e);

}

///

///初始化(OnInit)

///

///

protectedoverridevoidOnInit(EventArgse)

{

#regionExtJS

ExtHelper.Add(this.Header,this);

#endregion

base.OnInit(e);

}

#endregion

#regionvirtualmethod

///

///搜索

///

///

publicvirtualstringSearch()

{

returnstring.Empty;

}

///

///修改

///

///

publicvirtualstringModify()

{

returnstring.Empty;

}

///

///删除

///

///

publicvirtualstringRemove()

{

returnstring.Empty;

}

///

///添加

///

///

publicvirtualstringAdd()

{

returnstring.Empty;

}

///

///详情

///

///

publicvirtualstringDetail()

{

returnstring.Empty;

}

///

///可以覆盖做其他处理

///Response.End();

///

publicvirtualvoidEnd()

{

Response.End();

}

#endregion

#endregion

}

这个PageBase类主要做以下三个工作:

        a).  权限判断

          这里权限判断是空的,大家实际项目中可以加上或者与现在项目进行集成。

        b).  ExtJS必须的资源文件加载

          在OnInit页面的HtmlHead中按顺序加载ext-all.css、ext-base.js、ext-all.js、ext-lang-zh_CN.js

        c).  路由请求

          处理Ext的GET/POST请求,模拟服务器端控件的事件。

      小技巧:

Request.QueryString["method"]中method参数名称是忽略大小写的。

    2.2  ExtHelper.cs

usingSystem;

usingSystem.Collections.Generic;

usingSystem.Text;

usingSystem.Configuration;

usingSystem.Web.UI.HtmlControls;

namespaceExtJS.Ext

{

publicsealedclassExtHelper

{

#regionMemberVariable

publicstaticreadonlystringEXT_BASE=ConfigurationManager.AppSettings["EXT_BASE"]?

?

"/js/ext";

///

///ext-all.css

///

publicstaticreadonlystringEXT_CSS_ALL=EXT_BASE+"/resources/css/ext-all.css";

///

///ext-all.js

///

publicstaticreadonlystringEXT_JS_ALL=EXT_BASE+"/ext-all.js";

///

///ext-base.js

///

publicstaticreadonlystringEXT_JS_BASE=EXT_BASE+"/adapter/ext/ext-base.js";

///

///ext-lang-zh_CN.js

///

publicstaticreadonlystringEXT_JS_LANGUAGE=EXT_BASE+"/source/locale/ext-lang-zh_CN.js";

///

///EasyExt.js

///

publicstaticreadonlystringEXT_JS_EASYEXT=EXT_BASE+"/plugins/EasyExt.js";

///

///0ext-all.css

///1ext-base.js

///2ext-all.js

///3ext-lang-zh_CN.js

///4EasyExt.js

///

privatestaticreadonlyIListextresource;

#endregion

#regionConstructors

staticExtHelper()

{

extresource=newList();

//ext-all.css

HtmlGenericControlcss_ext_all=newHtmlGenericControl("link");

css_ext_all.Attributes.Add("type","text/css");

css_ext_all.Attributes.Add("rel","stylesheet");

css_ext_all.Attributes.Add("href",EXT_CSS_ALL);

extresource.Add(css_ext_all);

//ext-base.js

HtmlGenericControljs_ext_base=newHtmlGenericControl("script");

js_ext_base.Attributes.Add("type","text/javascript");

js_ext_base.Attributes.Add("src",EXT_JS_BASE);

extresource.Add(js_ext_base);

//ext-all.js

HtmlGenericControljs_ext_all=newHtmlGenericControl("script");

js_ext_all.Attributes.Add("type","text/javascript");

js_ext_all.Attributes.Add("src",EXT_JS_ALL);

extresource.Add(js_ext_all);

//ext-lang-zh_CN.js

HtmlGenericControljs_ext_lang=newHtmlGenericControl("script");

js_ext_lang.Attributes.Add("type","text/javascript");

js_ext_lang.Attributes.Add("src",EXT_JS_LANGUAGE);

extresource.Add(js_ext_lang);

//EasyExt.js

HtmlGenericControljs_ext_easyext=newHtmlGenericControl("script");

js_ext_easyext.Attributes.Add("type","text/javascript");

js_ext_easyext.Attributes.Add("src",EXT_JS_EASYEXT);

extresource.Add(js_ext_easyext);

}

#endregion

#regionMethod

///

///添加Ext资源文件

///

///

///

publicstaticvoidAdd(HtmlHeadhead,System.Web.UI.Pagepage)

{

if(head!

=null)

{

if(extresource!

=null)

{

//head.Controls[0]为title

head.Controls.AddAt(1,extresource[0]);

head.Controls.AddAt(2,extresource[1]);

head.Controls.AddAt(3,extresource[2]);

head.Controls.AddAt(4,extresource[3]);

//head.Controls.AddAt(5,extresource[4]);

}

}

}

#endregion

}

}

 根据配置文件指定Ext路径来加载ext的css和js文件,将来可方便的升级版本之用,仅需修改配置文件即可完成升级,但是需要注意ext并没有完全100%的向下兼容!

    2.3  add.aspx

      add页面注意是继承PageBase,由于本文仅使用控件,而cs内代码为空,所以仅贴页面代码:

<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="add.aspx.cs"Inherits="add"%>

DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http:

//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

//www.w3.org/1999/xhtml">

表单控件

Ext.onReady(function(){

Ext.QuickTips.init();

Ext.form.Field.prototype.msgTarget='side';

varform1=newExt.FormPanel({

layout:

'form',

collapsible:

true,

autoHeight:

true,

frame:

true,

renderTo:

Ext.getBody(),

title:

'

hand"onclick="window.location.reload();">表单控件',

style:

'margin-left:

auto;margin-right:

auto;width:

500px;margin-top:

8px;',

//设置标签对齐方式

labelAlign:

'right',

//设置标签宽

labelWidth:

170,

//设置按钮的对齐方式

buttonAlign:

'center',

//默认元素属性设置

defaults:

{

width:

180

},

items:

[{

fieldLabel:

'文本框控件',

name:

'TextBox',

xtype:

'textfield'

//,readOnly:

true//只读

//,emptyText:

'请输入数据'//为空时显示的文本,注意不是value

},{

fieldLabel:

'只允许输入数字'

name:

'TextBoxNumber'

xtype:

'numberfield'

//,allowDecimals:

false//允许小数点

//,allowNegative:

false,//允许负数

//,maxValue:

1000//最大值

//,minValue:

0//最小值

},{

fieldLabel:

'下拉框控件',

name:

'DropDownList',

xtype:

'combo',

//本地数据源local/remote

mode:

'local',

//设置为选项的text的字段

displayField:

"Name",

//设置为选项的value的字段

valueField:

"Id",

//是否可以输入,还是只能选择下拉框中的选项

editable:

false,

typeAhead:

true,

//必须选择一项

//forceSelection:

true,

//输入部分选项内容匹配的时候显示所有的选项

triggerAction:

'all',

//selectOnFocus:

true,

//数据

store:

newExt.data.SimpleStore({

fields:

['Id','Name'],

data:

[[1,'男'],[0,'女']]

})

},{

fieldLabel:

'日历控件',

xtype:

'datefield',

name:

'DateControl',

format:

"Y-m-d",

editable:

false

//,默认当前日期

//value:

newDate().dateFormat('Y-m-d')

},{

fieldLabel:

'单选控件'

xtype:

'radiogroup'

name:

'Radios'

items:

[

{name:

'RadioItems',boxLabel:

'选我',inputValue:

'1',checked:

true},

{name:

'RadioItems',boxLabel:

'选我吧',inputValue:

'0'}

]

},{

fieldLabel:

'复选控件'

xtype:

'checkboxgroup'

name:

'Checkboxs'

//columns属性表示用2行来显示数据

columns:

2

items:

[

{name:

'CheckboxItems',boxLabel:

'香蕉',inputValue:

'A'},

{name:

'CheckboxItems',boxLabel:

'苹果',inputValue:

'B'},

{name:

'CheckboxItems',boxLabel:

'橘子',inputValue:

'C'},

{name:

'CheckboxItems',boxLabel:

'桃子',inputValue:

'D'}

]

},{

fieldLabel:

'文本域控件'

xtype:

'textarea'

value:

'可以输好多字!

'

height:

50

},{

fieldLabel:

'时间控件'

xtype:

'timefield'

//格式化输出默认为"g:

iA"

//"g:

ia|g:

iA|g:

ia|g:

iA|h:

i|g:

i|H:

i|ga|ha|gA|ha|ga|gA|gi|hi|gia|hia|g|H"

format:

'H:

i'

//时间间隔(分钟)

increment:

60

},{

fieldLabel:

'标签页'

xtype:

'fieldset'

title:

'标签页'

autoHeight:

true

items:

[{

xtype:

'panel',

title:

'标签页中的面板',

frame:

true,

height:

50

}]

},{

fieldLabel:

'在线编辑器'

xtype:

'htmleditor'

width:

260

height:

100

//以下为默认选项,其他请参照源代码

//,enableColors:

false

//,enableFormat:

true

//,enableFontSize:

true

//,enableAlignments:

true

//,enableLists:

t

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 电子电路

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1