ExtJs 备忘录(2)—— Form表单(二) [ 控件封装 ]

//#region Ext.form.CheckboxGroup

function CheckboxGroup(fName,fLabel,items,columns)
{
    
/// <summary>
    /// Ext.form.CheckboxGroup封装
    ///     例子:new CheckboxGroup('Gender','性别',[['男','男',true],['女','女']])
    /// <param name="fName">name</param>
    /// <param name="fLabel">fieldLabel</param>
    /// <param name="items">数据,格式如下:[['男','男',true],['女','女']]</param>
    /// <param name="columns">设置几列自动排列,如果是1的话会按一行来显示</param>
    /// </summary>
    /// <returns>Ext.form.CheckboxGroup</returns>
    var cg = new Ext.form.CheckboxGroup();
    
    
if(fName!=null)
        cg.name 
= fName;
    
    
if(fLabel!=null)
        cg.fieldLabel 
= fLabel;
    
    
if(columns!=null && typeof(columns) == "number")
        cg.columns 
= Number(columns);
        
    
var rebuildiItems = new Array();
        
    
if(items !=null){
        
for(var i = 0 ;i<items.length; i++)
        {
            rebuildiItems[i] 
= {};
            rebuildiItems[i].name 
= fName;
            rebuildiItems[i].boxLabel 
= items[i][0];
            rebuildiItems[i].inputValue 
= items[i][1];
            
if(items[i].length > 2 && typeof(items[i][2]) == "boolean")
                rebuildiItems[i].checked 
= Boolean(items[i][2]);
        }
        
        
//Ext.form.RadioGroup扩展
        Ext.override(Ext.form.CheckboxGroup, {
            setItems:
function(data){
                
this.items = data;
            }
        });

        
if(cg.setItems){
            cg.setItems(rebuildiItems);
        }        
    }
    
    
return cg;
}

//#endregion

//#region Ext.form.HtmlEditor

function HtmlEditor(fName,fLabel,width,height,value)
{
    
/// <summary>
    /// Ext.form.HtmlEditor封装
    /// </summary>
    /// <param name="fName">name</param>
    /// <param name="fLabel">fieldLabel</param>
    /// <param name="width">width</param>
    /// <param name="height">height</param>
    /// <param name="value">value</param>
    /// <returns>Ext.form.HtmlEditor</returns>
    var editor = new Ext.form.HtmlEditor();

    
if(fName!=null)
        editor.name 
= fName;
    
    
if(fLabel!=null)
        editor.fieldLabel 
= fLabel;
        
    
if(width!=null && typeof(width) == "number")
        editor.width 
= Number(width);
        
    
if(height!=null && typeof(height) == "number")
        editor.height 
= Number(height);
        
    
if(value!=null)
        editor.value 
= value;
        
    
return editor;
}

//#endregion

//#region Ext.form.Hidden

function Hidden(fName,value)
{
    
/// <summary>
    /// Ext.form.Hidden封装
    /// </summary>
    /// <param name="fName">name</param>
    /// <param name="value">value</param>
    /// <returns>Ext.form.Hidden</returns>
    var hidden = new Ext.form.Hidden();

    
if(fName!=null)
        hidden.name 
= fName;
        
    
if(value!=null)
        hidden.value 
= value;
        
    
return hidden;
}

//#endregion

//#region Ext.form.Checkbox

function Checkbox(fName,fLabel,value,boxLabel,inputValue,checked)
{
    
/// <summary>
    /// Ext.form.Checkbox封装
    /// </summary>
    /// <param name="fName">name</param>
    /// <param name="fLabel">fieldLabel</param>
    /// <param name="value">value</param>
    /// <param name="boxLabel"></param>
    /// <param name="inputValue"></param>
    /// <param name="checked"></param>
    /// <returns>Ext.form.Checkbox</returns>
    var checkbox = new Ext.form.Checkbox();

    
if(fName!=null)
        checkbox.name 
= fName;
        
    
if(fLabel!=null)
        checkbox.fieldLabel 
= fLabel;
        
    
if(value!=null)
        checkbox.value 
= value;
        
    
if(boxLabel!=null && typeof(boxLabel) == "string")
        checkbox.boxLabel 
= String(boxLabel);
    
    
if(inputValue!=null)
        checkbox.inputValue 
= inputValue;
        
    
if(checked!=null && typeof(checked) == "boolean")
        checkbox.checked 
= Boolean(checked);
        
    
return checkbox;
}

//#endregion

//#region Ext.form.FieldSet

function FieldSet(fName,title,items)
{
    
/// <summary>
    /// Ext.form.FieldSet封装
    /// </summary>
    /// <param name="fName">fieldLabel</param>
    /// <param name="title">title</param>
    /// <param name="items">数据源</param>
    /// <returns>Ext.form.FieldSet</returns>
    var fieldset = new Ext.form.FieldSet();
    
    
if(fName!=null)
        fieldset.fieldLabel 
= fName;
        
    
if(title!=null  && typeof(title) == "string")
        fieldset.title 
= String(title);
        
    
if(items!=null)
        fieldset.add(items);
    
    
return fieldset;
}

//#endregion

//#region Ext.Panel

function Panel(title,width,height,frame)
{
    
/// <summary>
    /// Ext.Panel封装
    /// </summary>
    /// <param name="title">name</param>
    /// <param name="width">value</param>
    /// <param name="height">height</param>
    /// <param name="frame">frame</param>
    /// <returns>Ext.Panel</returns>
    if(title ==null)
        title 
= '';  //默认值 如果为此值则不显示标题栏
        
    
var panel = new Ext.Panel({
        title:title
    });
        
    
if(width!=null && typeof(width) == "number")
        panel.width 
= Number(width);
        
    
if(height!=null && typeof(height) == "number")
        panel.height 
= Number(height);
        
    
if(frame!=null && typeof(frame) == "boolean")
        panel.frame 
= Boolean(frame);
    
    
return panel;
}

//#endregion

//#region MessageBox

function MsgConfirm(msg,title,fn,width)
{
    
/// <summary>
    /// Ext.Msg.show 问题确认框
    /// </summary>
    /// <param name="msg">设置要输出的信息</param>
    /// <param name="title">设置确认框标题</param>
    /// <param name="fn">设置回调fn函数</param>
    /// <param name="width">设置确认框宽</param>
    /// <returns>Ext.Msg.show</returns>
    if(msg ==null)
        msg 
= "";
    
    
if(title == null || typeof(title) != "string")
        title 
= "问题";
        
    
if(width == null || typeof(width) != "number")
        width 
= 400;
        
    
if(fn == null || typeof(fn) != "function")
        fn 
= new function(){};
    
    
return Ext.Msg.show({
        title: title,
        msg: msg,
        width: width,
        icon:Ext.MessageBox.QUESTION,
        buttons: Ext.MessageBox.YESNO,
        fn:fn
    });
}

function MsgInfo(msg,title,width)
{
    
/// <summary>
    /// Ext.Msg.show 信息提示框
    /// </summary>
    /// <param name="msg">设置要输出的信息</param>
    /// <param name="title">设置标题</param>
    /// <param name="width">设置提示框宽</param>
    /// <returns>Ext.Msg.show</returns>
    if(msg ==null)
        msg 
= "";
    
    
if(title == null || typeof(title) != "string")
        title 
= "提示";
        
    
if(width == null || typeof(width) != "number")
        width 
= 400;
        
    
return Ext.MessageBox.show({
        title: title,
        msg: msg,
        width: width,
        icon:Ext.MessageBox.INFO,
        buttons: Ext.MessageBox.OK
    });
}

function MsgError(msg,title,width)
{
    
/// <summary>
    /// Ext.Msg.show 错误提示框
    /// </summary>
    /// <param name="msg">设置要输出的信息</param>
    /// <param name="title">设置标题</param>
    /// <param name="width">设置提示框宽</param>
    /// <returns>Ext.Msg.show</returns>
    if(msg ==null)
        msg 
= "";
    
    
if(title == null || typeof(title) != "string")
        title 
= "错误";
        
    
if(width == null || typeof(width) != "number")
        width 
= 400;

    
return Ext.MessageBox.show({
        title: title,
        msg: msg,
        width: width,
        icon:Ext.MessageBox.ERROR,
        buttons: Ext.MessageBox.OK
    });
}

function MsgWarning(msg,title,width)
{
    
/// <summary>
    /// Ext.Msg.show 警告提示框
    /// </summary>
    /// <param name="msg">设置要输出的信息</param>
    /// <param name="title">设置标题</param>
    /// <param name="width">设置提示框宽</param>
    /// <returns>Ext.Msg.show</returns>
    if(msg ==null)
        msg 
= "";
    
    
if(title == null || typeof(title) != "string")
        title 
= "警告";
        
    
if(width == null || typeof(width) != "number")
        width 
= 400;

    
return Ext.MessageBox.show({
        title: title,
        msg: msg,
        width: width,
        icon:Ext.MessageBox.WARNING,
        buttons: Ext.MessageBox.OK
    });
}

//#endregion
    代码说明:
      这里封装了常用的Form表单控件、Panel控件、以及弹出消息提示的封装。这里为什么要封装MSG框呢,根据我使用ext3.0rc2的经验,如果不指定MSG宽且MSG字符串过少的话可能出现对话框残缺的情况,不知道是不是它的BUG,3.0正式版好像没有这情况,但还是封装了,这样能兼容前面的版本。

  三、说明
    1.  写好封装js后,还需要把它加入到head里面,以便其他地方也能方便使用,注意上篇文章ExtHelper.cs我注释的部分,解除注释即可。注意这里文件名称可能有变化,对应修改即可。
    2.  封装的好处在贴esayadd.aspx代码后面的说明里面有说,对于动辄几百行的JS代码,这样还是能有效的减少代码量,也不容易出错。一旦封装好后就不要轻易修改了,如果要修改也必须保证只能增加参数,这样才能保证你前面写的代码调用没有问题,对于特殊的复杂的设置可以在封装的基础上继续设置(你可以看到return 都是Ext的对象)或者重新写一个可能比较好!

  四、下载
    1.  ExtJS2009-9-20.rar

结束语
  有点忙,今天不加班,所以也赶紧把这系列尽早写完吧:  )

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园2.0是高校信息化建设的新阶段,它面对着外部环境变化和内生动力的双重影响。国家战略要求和信息技术的快速发展,如云计算、大数据、物联网等,为智慧校园建设提供了机遇,同时也带来了挑战。智慧校园2.0强调以服务至上的办学理念,推动了教育模式的创新,并对传统人才培养模式产生了重大影响。 智慧校园建设的解决之道是构建一个开放、共享的信息化生态系统,利用互联网思维,打造柔性灵活的基础设施和强大的基础服务能力。这种生态系统支持快速迭代的开发和持续运营交付能力,同时注重用户体验,推动服务创新和管理变革。智慧校园的核心思想是“大平台+微应用+开放生态”,通过解耦、重构和统一运维监控,实现服务复用和深度融合,促进业务的快速迭代和自我演化。 智慧校园的总体框架包括多端协同,即“端”,它强调以人为中心,全面感知和捕获行为数据。这涉及到智能感知设备、超级APP、校园融合门户等,实现一“码”或“脸”通行,提供线上线下服务端的无缝连接。此外,中台战略是智慧校园建设的关键,包括业务中台和数据中台,它们支持教育资源域、教学服务域等多个领域,实现业务的深度融合和数据的全面治理。 在技术层面,智慧校园的建设需要分期进行,逐步解耦应用,优先发展轻量级应用,并逐步覆盖更多业务场景。技术升级路径包括业务数据化、数据业务化、校园设施智联化等,利用IoT/5G等技术实现设备的泛在互联,并通过人工智能与物联网技术的结合,建设智联网。这将有助于实现线上线下一网通办,提升校园安全和学习生活体验,同时支持人才培养改革和后勤管理的精细化。 智慧校园的建设不仅仅是技术的升级,更是对教育模式和管理方式的全面革新。通过构建开放、共享的信息化生态系统,智慧校园能够更好地适应快速变化的教育需求,提供更加个性化和高效的服务,推动教育创新和人才培养的高质量发展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值