首页 > 其他分享 >普加项目管理中间件示例之二:自定义表格列

普加项目管理中间件示例之二:自定义表格列

时间:2023-05-25 17:34:28浏览次数:49  
标签:return name 自定义 示例 中间件 push var id columns

自定义表格列 示例demo/diyColumns.html

上文介绍了标准列,这里介绍一下自定义列。

正如标准列是一些预设好的对象,自定义列也是一个对象。

支持多种数据类型的列:String、Number、Boolean、Date、Array等

支持多种单元格编辑器:TextBox、Spinner、CheckBox、DatePicker、ComboBox、TreeSelect等

支持任意扩展任务属性

var project = new PlusProject();
var columns = [];
//可以使用标准列: "状态列", 也可以使用其他的

columns.push(new PlusProject.IDColumn());
columns.push(new PlusProject.StatusColumn());
//以下进行自定义列, 演示各种数据类型对应使用什么列

//String 
var stringColumn = {
    name: "name",
    header: "任务名称<br/>String",
    field: "Name",          //OutlineNumber
    width: 150,
    editor: {
        type: "textbox"
    }
};
columns.push(stringColumn);


//Number 
var numberColumn = {
    header: "进度<br/>Number",
    field: "PercentComplete",
    width: 60,
    editor: {
        type: "spinner", minValue: 0, maxValue: 100/*,  decimalPlaces: 2*/
    }
};
columns.push(numberColumn);

//Date
var dateColumn = {
    header: "开始日期<br/>Date",
    field: "Start1",
    name:"Start1",
    width: 100,
    renderer: function (e) {
        var date = e.value;
        if (!date) return "";
        return date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate();

        //return e.task.Duration * e.task.XXXX;
        //return '<img />';
    },
    editor: {
        type: "datepicker"
    }
};
columns.push(dateColumn);


//Boolean => CheckBoxColumn
var boolColumn = {
    header: "关键任务<br/>Boolean",
    field: "Critical",
    width: 70,
    type: "checkboxcolumn",
    trueValue: 1,
    falseValue: 0
};
columns.push(boolColumn);

//Array => ComboBoxColumn
var TaskStatus = [
    { id: 1, name: '未启动' },
    { id: 2, name: '进行中' },
    { id: 3, name: '暂停中' },
    { id: 4, name: '已完成' }
];
var arrayColumn = {
    header: "任务状态<br/>Array",
    field: "TaskStatus",
    width: 120,
    autoShowPopup: true,    //编辑时自动下拉
    editor: {
        id: 'aa',
        type: "combobox", valueField: "id", displayField: "name",
        data: TaskStatus
    },
    renderer: function (e) {
        var value = e.value;
        for (var i = 0, l = TaskStatus.length; i < l; i++) {
            var o = TaskStatus[i];
            if (o.id == value) return o.name;
        }
        return "";
    }
};
columns.push(arrayColumn);

//Multi => ComboBoxColumn
var Principals = [
    { id: 1, name: '张三' },
    { id: 2, name: '李四' },
    { id: 3, name: '赵五' },
    { id: 4, name: '钱六' }
];
var multiColumn = {
    header: "负责人<br/>Multi",
    field: "Principal",
    width: 120,
    autoShowPopup: true,    //点击单元格自动下拉选择
    editor: {
        type: "combobox", valueField: "id", displayField: "name",
        multiSelect: true, showCheckIcon: true,
        data: Principals
    },
    renderer: function (e) {
        var values = e.value ? e.value.split(",") : [];
        var sb = [];
        for (var i = 0, l = Principals.length; i < l; i++) {
            var o = Principals[i];
            for (var j = 0, k = values.length; j < k; j++) {
                if (o.id == values[j]) {
                    sb.push(o.name);
                }
            }
                
        }
        return sb.join(",");
    }
};
columns.push(multiColumn);


//TextBoxList   模糊多选输入框

var textBoxListColumn = {
    header: "公司<br/>TextBoxList",
    field: "Company",
    displayField: "CompanyName",
    width: 120,
    editor: {
        type: "textboxlist", valueField: "id", textField: "company",
        url: "filterdata.aspx"
    }
};
columns.push(textBoxListColumn);


project.setColumns(columns);

project.setTreeColumn("name");
project.render(document.getElementById("viewCt"));

标签:return,name,自定义,示例,中间件,push,var,id,columns
From: https://blog.51cto.com/u_16081226/6350344

相关文章

  • Django——中间件
    我们在前面的课程中已经学会了给视图函数加装饰器来判断是用户是否登录,把没有登录的用户请求跳转到登录页面。我们通过给几个特定视图函数加装饰器实现了这个需求。但是以后添加的视图函数可能也需要加上装饰器,这样是不是稍微有点繁琐。学完今天的内容之后呢,我们就可以用更适宜的......
  • GB28181流媒体平台LiveGBS中如何根据业务需求控制监控视频流的播放权限,实现用户自定义
    随着目前对信息安全的越来越重视,视频监控领域的视频流也需要做各种安全策略。视频监控流流媒体平台输出的直播流需要做权限限制,只允许哪些IP访问、只允许哪些用户访问等等各种权限限制。为了满足不同用户不同场景各种不同的播放权限需求,LiveGBSGB28181流媒体平台提供了可以设置播......
  • 创建及使用一个SqlServer的用户自定义表类型(User-Defined Table Type)
    创建一个用户自定义表类型(User-DefinedTableType)CREATETYPE[dbo].[MyTypeName]ASTABLE( [Field1][nvarchar](50)NOTNULL, [Field2][nvarchar](100)NULL, [Field3][nvarchar](50)NULL, [Field4][nvarchar](20)NULL, [Field5][nvarchar](20)NULL)GO直接......
  • 自定义hook - 双击事件 - useDBClick
    1.问题:业务场景中同时需要单击、双击事件,但是原生的onDoubleClick触发双击的时候会同时触发单击事件;2.解决方案:封装一个自定义hook能独立地触发单击和双击事件;根据两次点击的间隔是否小于interval来判断触发单击双击事件;//useDBClick.tsimport{MutableRe......
  • 多线程合集(三)---异步的那些事之自定义AsyncTaskMethodBuilder
    引言之前在上一篇文章中多线程合集(二)---异步的那些事,async和await原理抛析,我们从源码去分析了async和await如何运行,以及将编译后的IL代码写成了c#代码,以及实现自定义的Awaiter,自定义异步状态机同时将本系列的第一篇文章的自定义TaskScheduler和自定义的Awaiter......
  • Jenkins 自定义变量
    方法一、在构建步骤中,用Windows命令设置变量,然后写入到一份文档,给其他task调用 方法二、在构建环境里,“Injectenvironmentvariablestothebuildprocess”读取或直接定义变量。读取的话可以读取上一个方法输出的变量文件 方法三、在系统配置,设置的变量属于全局变量......
  • 入门爬虫示例-爬取豆瓣短评
    群里有个小妹妹,让我帮她写的代码,好像是作业什么的。花了几分钟看了一下,随便写写,分享给有需要的童鞋,我用python3写的,实现的功能就是:爬取豆瓣短评,然后将数据写入本地的excel表格,数据大概有,电影名称,评分,评论人数,短评四项,稍微修改下也可以爬取其他数据。这属于入门学习的爬虫,博客里的......
  • 【Redis】自定义RedisTemplate模板,拿来直接使用
    以下是自定义RedisTemplate固定模板,拿来可以直接使用:packagecom.iot.back.message.process.config;importcom.fasterxml.jackson.annotation.JsonAutoDetect;importcom.fasterxml.jackson.annotation.PropertyAccessor;importcom.fasterxml.jackson.databind.ObjectMappe......
  • gitlab--内置的环境变量、自定义环境变量
    自定义环境变量gitlab给我们内置了很多的变量,但有时候满足不了我们的需求,例如我们需要往某个私有仓库推送镜像,需要账号和密码进行登录。这时候我们不想把密码写在.gitlab-ci.yml文件里面。我们就可以自定义一个环境变量来使用了。先来定义一个变量,设置-》CI/CD-》变量在.g......
  • mybatis关于自定义映射的使用方法
    在MyBatis中,可以通过SQL映射文件来自定义映射,即将一个查询结果映射成一个Java对象。在映射中,我们可以控制如何从查询结果中提取数据,并将其映射到Java对象的属性中。以下是一些常用的自定义映射方式:resultMap:使用resultMap元素来定义映射规则,可以精确地将查询结果映......