博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第三方控件获取值问题的解决(附转载的easyUI datagrid 时间格式化(两种))
阅读量:5302 次
发布时间:2019-06-14

本文共 3479 字,大约阅读时间需要 11 分钟。


在.net开发过程中,经常会有使用第三方控件的情况,但是在使用过程中,却有时候会获取不到使用控件的值。

那么问题是出在什么地方呢?
下面我用自己遇到的实际情况来做一下演示,希望对大家有所帮助。

我做的是一个学校卫生管理系统。使用的是easyui中的DateBox(日期输入框)控件,

1、使用标签创建日期输入框。

 

2.在初次加载中添加

$('#dt').datetimebox({            hailgn: 'center',            align: 'center',            width: 200,            required: true,            showSeconds: false        });

3、但在修改时,却获取不到日历的值,

这里写图片描述

4、在检查前台数据和后台传输数据后,排除了获取不到值得情况。

最后检查了前台控件,发现了问题。

后台传输将input控件变成了其他形式

这里写图片描述

5,解决方法如下:

解决前:

url: "@Url.Action("GetOne")" + "?id=" + rows[0].C_ID,                dataType: "json",                type: "POST",                success: function (data) {                    if (data.state == "1") {                        $("#dptdialog input[name='C_name']").val(data.data.C_name);                        $("#dptdialog input[name='C_age']").val(data.data.C_age);                        $("#dptdialog input[name='C_date']").val(data.data.C_date);

解决后:

success: function (data) {                    if (data.state == "1") {                        $("#dptdialog input[name='C_ID']").val(data.data.C_ID);                        $("#dptdialog input[name='O_shoppname']").val(data.data.O_shoppname);                        $("#dptdialog input[name='O_price']").val(data.data.O_price);                        $("#dptdialog input[name='O_num']").val(data.data.O_num);                        $("#dt").datetimebox('setValue', data.data.O_date);

具体方法:将前边的#dptdialog input[name=’C_date’],转换成了初次加载中的dt

以防止不可变的第三方控件转化
并引用了easyui中的setValue方法,来更好地获取当前值。

easyUI datagrid 时间格式化(一)

解决前台显示时间格式混乱,附有没有意思的T获取00.00等的情况,

在前端解决问题的解决方法
1,创建JavaScript文件,扩展Date的功能

Date.prototype.format = function (format) {
var o = { "M+": this.getMonth() + 1, // month "d+": this.getDate(), // day "h+": this.getHours(), // hour "m+": this.getMinutes(), // minute "s+": this.getSeconds(), // second "q+": Math.floor((this.getMonth() + 3) / 3), // quarter "S": this.getMilliseconds() // millisecond } if (/(y+)/.test(format)) format = format.replace(RegExp.$1, (this.getFullYear() + "") .substr(4 - RegExp.$1.length)); for (var k in o) if (new RegExp("(" + k + ")").test(format)) format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length)); return format; } function formatDatebox(value) {
if (value == null || value == '') { return ''; } var dt; if (value instanceof Date) { dt = value; } else { dt = new Date(value); } return dt.format("yyyy-MM-dd"); //扩展的Date的format方法(上述插件实现) }

2、在前台使用时间显示的页面进行调用(easyUI datagrid 中)

$('#datagridDemo1').datagrid({      ……      columns: [[              { field: 'CreateDate', title: '创建日期', width: 120,align: 'center',formatter: formatDatebox},              ……          ]]      });

我使用调用的是在原有日历控件初次加载中添加formatter: formatDatebox

这样符合格式规范的时间格式就没有问题了

参考文章:

easyUI datagrid 时间格式化(二)(摘录)

1、适用的问题

适用于以下格式
这里写图片描述

2、创建JS文件

function DateTimeFormatter(value) {    if (value == undefined) {        return "";    }    /*json格式时间转js时间格式*/    value = value.substr(1, value.length - 2);    var obj = eval('(' + "{Date: new " + value + "}" + ')');    var dateValue = obj["Date"];    if (dateValue.getFullYear() < 1900) {        return "";    }    return dateValue.format("yyyy-MM-dd hh:mm:ss");}

3、引用:field中添加 formatter: DateTimeFormatter

引用参考文档

转载于:https://www.cnblogs.com/Grant-Fu/p/7412994.html

你可能感兴趣的文章
Unity 5.4 测试版本新特性---因吹丝停
查看>>
使用Scrapy爬虫框架简单爬取图片并保存本地(妹子图)
查看>>
7.5 文件操作
查看>>
DFS-hdu-2821-Pusher
查看>>
吴裕雄 Bootstrap 前端框架开发——Bootstrap 排版:地址(Address)
查看>>
吴裕雄--天生自然 JAVASCRIPT开发学习: 表单
查看>>
UITextField
查看>>
Spring事务管理的三种方式
查看>>
MyEclipse中将普通Java项目convert(转化)为Maven项目
查看>>
node js 安装.node-gyp/8.9.4 权限 无法访问
查看>>
Java_正则表达式
查看>>
Linux内核分析——第二周学习笔记
查看>>
windows基本命令
查看>>
Qt图片显示效率的比较(转)
查看>>
VMware中CentOS设置静态IP
查看>>
剑指Offer_编程题_7
查看>>
js 变量大小写
查看>>
Linux系统的启动原理
查看>>
JDesktopPane JInternalFrames
查看>>
错误The request sent by the client was syntactically incorrect ()的解决
查看>>