一、效果图展示

  我这里主要是为了实现选择周期时间。如周一、周二、周三等

二、界面界面代码

  下面就是我实现的代码,包含了界面、数据处理、回填数据等。可能架构的方式,您的代码和我的代码有差异,但是大体就是这样的。需要注意的地方,我已经使用颜色标出。

Ext.define('zxx.view.CreateOrUpdate', {
extend: 'Ext.form.Panel',
xtype: 'zxx-createorupdate', viewModel: {
data: {
semesterCourse: Eui.createModel('edu.semesterCourse', 'SemesterCourseEditDto')
}
}, waitMsgTarget: true,
border: false,
layout: 'fit',
fieldDefaults: {
msgTarget: 'under',
labelAlign: 'left',
labelWidth: 100,
labelStyle: 'font-weight:bold',
flex: 1
},
defaultType: 'textfield',
initComponent: function () {
var me = this;
var vm = this.getViewModel();
this.items = [
{
flex: 1,
checkboxToggle: true,
defaultType: 'checkbox',
layout: 'anchor',
defaults: {
anchor: '100%',
hideEmptyLabel: false
},
xtype: 'checkboxgroup',
items: [
{
xtype: 'fieldcontainer',
fieldLabel: '上课时间',
checkboxToggle: true,
defaultType: 'checkbox',
xtype: 'checkboxgroup',
id: 'courseDate',
name: 'courseDate',
labelWidth: 110,
layout: 'hbox',
items: [
{
boxLabel: '周一',
inputValue: '周一',
flex: 1,
},
{
boxLabel: '周二',
inputValue: '周二',
flex: 1,
},
{
boxLabel: '周三',
inputValue: '周三',
flex: 1,
},
{
boxLabel: '周四',
inputValue: '周四',
flex: 1,
},
{
boxLabel: '周五',
inputValue: '周五',
flex: 1,
},
{
boxLabel: '周六',
inputValue: '周六',
flex: 1,
},
{
boxLabel: '周日',
inputValue: '周日',
flex: 1,
}
]
}
]
}
]; this.callParent(arguments);
}, buttons: [{
text: l('Cancel'),
handler: 'closeForm',
iconCls: 'fa fa-window-close'
},
{
text: l('Save'),
handler: 'saveForm',
iconCls: 'fa fa-save',
disabled: true,
formBind: true
}], //编辑回填数据
setViewData: function (data, isEdit) {
var vm = this.getViewModel(); //通过 courseDate 找到items
var itmes = Ext.getCmp("courseDate").items; var semesterCourse = Eui.createModel('edu.semesterCourse', 'SemesterCourseEditDto', data.semesterCourse);
vm.set('semesterCourse', semesterCourse); //判断回填的数据是否有值
if (semesterCourse.data.courseDate.length > 0) {
//将值使用 split 函数分割
var courseDates = semesterCourse.data.courseDate.split(',');
for (var i = 0; i < courseDates.length; i++) {
const element = courseDates[i];
itmes.each(function (item) {
if (item.inputValue == element) {//如果组件中的inputValue对应的值 与字符串数组匹配,则设置勾选该组件
item.setValue(true);//设置勾选
}
});
}
}
}, /**
* 获取提交到服务器的数据
* @param {boolean} isEdit 是否编辑
* @returns {object} 提交的数据
*/
getSubmitData: function (isEdit, uploadData) {
var vm = this.getViewModel(); //找到 courseDate 下面的 items
var itmes = Ext.getCmp("courseDate").items.items; //定义字符串
var courseDate = ""; //拼接字符串
for (var i = 0; i < itmes.length; i++) {
const element = itmes[i];
if (element.value) {
courseDate += element.inputValue + ","
}
} //将最后的一个逗号去掉
if (courseDate.length > 0) {
courseDate = courseDate.substring(0, courseDate.length - 1)
}
//赋值
vm.data.semesterCourse.data.courseDate = courseDate; //最后一步就是提交数据到服务器
var result = {
semesterCourse: vm.data.semesterCourse.data,
};
return result;
}
});

三、服务端的话

  服务端的话,我就不多介绍。展示一点代码就可以。

        public async Task UpdateSemesterCourse(CreateOrUpdateSemesterCourseInput input)
{
       //处理时间
input.SemesterCourse.ScoreTemplate = string.IsNullOrEmpty(input.SemesterCourse.ScoreTemplate) ? "" : input.SemesterCourse.ScoreTemplate.Replace(',', ','); var semesterCourse = await _semesterCourseRepository.GetAsync(input.SemesterCourse.Id.Value);
ObjectMapper.Map(input.SemesterCourse, semesterCourse);
semesterCourse.Remain = semesterCourse.Limit - semesterCourse.Selected;
       //保存数据
await _semesterCourseRepository.UpdateAsync(semesterCourse);
}

Ext CheckBoxGroup使用的更多相关文章

  1. 基于Extjs的web表单设计器 第六节——界面框架设计

    基于Extjs的web表单设计器 基于Extjs的web表单设计器 第一节 基于Extjs的web表单设计器 第二节——表单控件设计 基于Extjs的web表单设计器 第三节——控件拖放 基于Extj ...

  2. CodeSmith系列(三)——使用CodeSmith生成ASP.NET页面

    仍然使用之前的XML文件,然后设置生成参数如下: 生成调整后的页面如下: 生成的代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ...

  3. Ext js中CheckBoxGroup的动态绑定

    <script type="text/jscript"> var WinXianCode; function SearchGetXianLuF(Type) { if(! ...

  4. Ext小总结

    titleCollapse:true,//高级搜索点击隐藏显示 添加按钮 >弹出页面 1.添加按钮 //核销  在控制层页面添加页面路径>添加操作按钮>window.allOrder ...

  5. 无废话ExtJs 入门教程十[单选组:RadioGroup、复选组:CheckBoxGroup]

    无废话ExtJs 入门教程十[单选组:RadioGroup.复选组:CheckBoxGroup] extjs技术交流,欢迎加群(201926085) 继上一节内容,我们在表单里加了个一个单选组,一个复 ...

  6. ExtJS笔记 Ext.Loader

    Ext.Loader is the heart of the new dynamic dependency loading capability in Ext JS 4+. It is most co ...

  7. EXt form属性

    配置项: success:执行成功后回调的函数,包括两个参数:form和action failure:执行失败后回调的函数,包括两个参数:form和action method:表单的提交方式,有效值包 ...

  8. Ext 中xtype一览

    基本组件: xtype Class 描述 button Ext.Button 按钮 splitbutton Ext.SplitButton 带下拉菜单的按钮 cycle Ext.CycleButton ...

  9. ext4.1动态生成多个checkboxgroup(或者radiogroup),并且有toolbar操作、

    转载自:http://blog.csdn.net/zhengyuechuan/article/details/9327291 前台controller代码: Ext.define('zyc.contr ...

随机推荐

  1. cheat.sh在手,天下我有

    前言 作为程序员需要了解的东西有很多,日常编码和写脚本脱离不开各式语言与 Linux 命令.为了记住一些杂乱的或不被经常使用的知识点,我们迫切需要一个"小抄"/备忘录,小抄内容多了 ...

  2. 【证书】curl 和 java 请求报证书错误

    1. 说明: 以下:例子的域名因为工作环境的问题,被我拿自己的博客域名替代了,所以无法进行模拟测试,请珍重,哈哈! 2. 环境: centos:7.5 java jdk:1.8.0_74 3. cur ...

  3. 安装seafile记录文档

    安装yum-cron.iptables .关闭selinux yum -y install cronie yum -y install yum-cron systemctl start yu,-cro ...

  4. 适合 JS 新手学习的开源项目——在 GitHub 学编程

    作者:HelloGitHub-小鱼干 这里是 HelloGitHub 的<GitHub 上适合新手的开源项目>系列的最后一篇,系列文章: C++ 篇 Python 篇 Go 篇 Java ...

  5. 在 CentOS 7 安装 Tomcat

    一. 安装 JDK 8 1.1 下载 JDK 8 cd /opt/ wget --no-cookies --no-check-certificate --header "Cookie: gp ...

  6. 第11.20节 Python 中正则表达式的扩展功能:后视断言、后视取反

    一. 引言 在<第11.19节 Python 中正则表达式的扩展功能:前视断言和前视取反>中老猿介绍了前视断言和前视取反,与二者对应的还有后视断言和后视取反. 二. (?<=-)后视 ...

  7. 基于.NET的程序读取Excel文件的解决方案

    目录 0. 前言 1. 使用NPOI库读取Excel文件 2. 使用OleDbConnection 3. 相关参考 shanzm-2020年12月8日 23:48:11 0. 前言 以前基于 .NET ...

  8. Java集合源码分析(八)——WeakHashMap

    简介 WeakHashMap 继承于AbstractMap,实现了Map接口. 和HashMap一样,WeakHashMap 也是一个散列表,它存储的内容也是键值对(key-value)映射,而且键和 ...

  9. Java集合源码分析(三)——LinkedList

    简介 LinkedList是一个链表结构的列表,也可以被作为堆栈.队列或双端队列使用.它继承于AbstractSequentialList双向链表,实现了List.Deque.Cloneable.ja ...

  10. linux 设置别名

    [root@oldboyedu45-xy data]# alias(查找别名) alias cp='cp -i' alias l.='ls -d .* --color=auto' alias ll=' ...