没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|其它|编辑:郝浩|2005-02-21 09:37:00.000|阅读 1653 次
概述:
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
关键字:JavaScript UserControl 数据敏感
我们在编写网络的数据库程序时,经常会遇到一个这样的问题,在数据的编辑页面(注意不在DataGrid中编辑数据),经常会放上一些TextBox来输入数据,然后点“保存”或者“返回”按钮,如果用户改变了TextBox中的数据,没有保存的直接点击了“返回”按钮的话,就应该提示用户数据没有保存。这个功能有些像Delphi中的数据敏感控件,但Delphi中一般编写的都是C/S的软件,到了WEB上就会大不相同。
那这个功能具体怎么实现呢,你可能会想到用TextBox自带的TextChange事件,当TextBox中的文本被改变时,通知服务器,然后再点击“返回”时进行相应的提示。但是,这里存在个重要的问题,如果这样做的话,页面每次都会产生PostBack,执行的效率会大打折扣,此路不通!
如果TextBox的Change能在客户端获得就好了,那就使用JavaScript吧。这里简单先说一下JavaScript:由于大部分的Win程序员习惯了原来的开发方式,现在转到Web上来开发,可能仍然保持着原来的思维方式,而且对于JavaScript没有足够的重视,这是不正确的!因为如果你的Web程序要想写好,不懂Html、JavaScript、CSS这些东西是写不好的。言归正传,现面就来说说这个功能怎么用JavaScript来实现。
一、自己封装一个DBTextBox用户控件,从System.Web.UI.UserControl继承下来。在这个控件的Load事件中加上如下代码:
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
//用js写入客户端
string tmpstr =@"<script language=""javascript""> var Changed = false;
</script>";
Response.Write(tmpstr);
SubTextBox.Attributes.Add("onKeyUp"," Changed = true;");
}
这段代码的意思就是,在初始化这个DBTextBox控件时,向客户端写入一个全局变量“Changed”,并初始化这个变量为false。然后给TextBox加上
OnKeyUp 属性,就是说,如果客户在这个TextBox中有按键发生,那么就把全局变量“Changed”置为true。
二、在封装一个Return控件,也从System.Web.UI.UserControl继承,代码如下:
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
string tmpstr = "您还没有保存记录,确认保存吗?";
SubBtn.Attributes.Add("onclick","var d = '"+tmpstr+"';if (Changed == true)
{return window.confirm(d)};");
}
上面的代码就是在初始化Return控件时,为Button增加 Onclick属性,当单击按钮时,首先判断全局变量“Changed”,如果为真,表示尚未保存,弹出确认对话框。
这里基本上就实现了主题所说的功能,但是还需要进行其他的加工,比如说,进行保存记录,保存记录后将全局变量“Changed”置为false等,方法相同,就不再赘述了!
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com
面对“数字中国”建设和中国制造2025战略实施的机遇期,中车信息公司紧跟时代的步伐,以“集约化、专业化、标准化、精益化、一体化、平台化”为工作目标,大力推进信息服务、工业软件等核心产品及业务的发展。在慧都3D解决方案的实施下,清软英泰建成了多模型来源的综合轻量化显示平台、实现文件不失真的百倍压缩比、针对模型中的大模型文件,在展示平台上进行流畅展示,提升工作效率,优化了使用体验。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@evget.com
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
慧都科技 版权所有 Copyright 2003-
2025 渝ICP备12000582号-13 渝公网安备
50010702500608号