一、效果图展示

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

二、界面界面代码

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

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. sentinel整合dubbo

    <dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-dubbo-a ...

  2. IB卡开启EIPOIB做虚拟化桥接使用

    步骤1:开启EiPOIB 编辑默认"no"为"yes" /etc/infiniband/openib.conf E_IPOIB_LOAD=yes 步骤2:重启h ...

  3. 冲刺随笔——Day_One

    这个作业属于哪个课程 软件工程 (福州大学至诚学院 - 计算机工程系) 这个作业要求在哪里 团队作业第五次--Alpha冲刺 这个作业的目标 团队进行Alpha冲刺 作业正文 正文 其他参考文献 无 ...

  4. Gradle DSL method not found: 'google()'

    报错信息如下:Gradle DSL method not found: 'google()'Possible causes:<ul><li>The project 'JustT ...

  5. 第8.19节 使用__doc__访问Python文档字符串(DocStrings )

    __doc__特殊变量用于查看类.函数.模块的帮助信息,这些帮助信息存放在文档字符串中. 一. 关于文档字符串 关于文档字符串前面很多章节提到过,DocStrings 文档字符串用于程序的文档说明,并 ...

  6. PyQt(Python+Qt)学习随笔:QListView的isWrapping属性

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QListView的isWrapping属性用于控制视图中的数据项项布局在可见区域中没有足够空间时是 ...

  7. XSS挑战赛(4)

    16-20关 第十六关 关键代码为: <?php ini_set("display_errors", 0); $str = strtolower($_GET["ke ...

  8. Python排序函数用法

    Python排序函数完美体现了Python语言的简洁性,对于List对象,我们可以直接调用sort()函数(这里称为"方法"更合适)来进行排序,而对于其他可迭代对象(如set,di ...

  9. base64 基本使用 和os模块使用

    1  base64 的基本使用 import base64 with open('../static/upload/63bc620d1594779d6a98c53a3a8db1e5.png','rb' ...

  10. 一、安装LoadRunner12

    今天接到任务最近要进行性能测试(刚开始搞自动化,有要搞性能测试,领导嫌我不忙吧),之前做接口测试用过Jmeter,也可以使用Jmeter做性能测试,但公司要求用LoadRunner,开始学习性能测试和 ...