asp.net自定义控件中注册Javascript问题解决方案
2023-06-13 09:15:26 时间
protectedoverridevoidOnPreRender(EventArgse)
{
base.OnPreRender(e);
RenderJS();
}
privatevoidRenderJS()
{
if(!Page.ClientScript.IsClientScriptBlockRegistered(SCRIPT_ID))//如果还没有注册语句,则注册
{
Page.ClientScript.RegisterClientScriptBlock(this.GetType(),SCRIPT_ID,SCRIPT_CONTENT);
}
}
privateconststringSCRIPT_ID="5B7A061B93D546A7A2601D56A8738DB9";//自定义标识Guid
privateconststringSCRIPT_CONTENT="<scripttype=\"text/javascript\">\nvarCB4949501DA_checkDouble=function(data){\nvarkey=event.keyCode;\nif((key<48||key>57)&&key!=46&&key!=45){\nreturnfalse;\n}\nelse{\nif(key==46){\nif(data.indexOf(\".\")!=-1||data.length==0)\nreturnfalse;\n}\nelseif(key==45){\nif(data.indexOf(\"-\")!=-1||data.length!=0){\nreturnfalse;\n}\n}\n}\nreturntrue;\n}\nvarCB4949501DA_checkInt=function(data){\nvarkey=event.keyCode;\n\nif((key<48||key>57)&&key!=45){\nreturnfalse;\n}\nelse{\nif(key==45){\nif(data.indexOf(\"-\")!=-1||data.length!=0){\nreturnfalse;\n}\n}\nelse{\nvarinput=String.fromCharCode(key)\nvarintData=parseInt(data+input);\nif(intData>2147483647||intData<-2147483648){\nreturnfalse;\n}\n}\nreturntrue;\n}\nreturntrue;\n}\nvar<spanstyle="color:#ff0000;">CB4949501DA_checkLong</span>=function(data){\nvarkey=event.keyCode;\n\nif((key<48||key>57)&&key!=45){\nreturnfalse;\n}\nelse{\nif(key==45){\nif(data.indexOf(\"-\")!=-1||data.length!=0){\nreturnfalse;\n}\n}\nelse{\nvarinput=String.fromCharCode(key)\nvarlongstrData=data+input\nif(longstrData.length>19){\nreturnfalse;\n}\n}\n}\nreturntrue;\n}\n</script>\n";
再添加代码去调用写入的javascript函数:
protectedoverridevoidAddAttributesToRender(System.Web.UI.HtmlTextWriterwriter)
{
base.AddAttributesToRender(writer);
writer.AddAttribute("onkeypress","return<spanstyle="color:#ff0000;">CB4949501DA_checkLong</span>(this.value);");}
另外,引用文件是这样的。
if(!Page.ClientScript.IsClientScriptIncludeRegistered("引用js文件1"))//如果还没有引用,则引用
{
Page.ClientScript.RegisterClientScriptInclude("引用js文件1","JS/MYJS.JS");
}
生成的页面查看源代码效果如下:
<scriptsrc="JS/MYJS.JS"type="text/javascript"></script>
<scripttype="text/javascript">
varCB4949501DA_checkDouble=function(data){
varkey=event.keyCode;
if((key<48||key>57)&&key!=46&&key!=45){
returnfalse;
}
else{
if(key==46){
if(data.indexOf(".")!=-1||data.length==0)
returnfalse;
}
elseif(key==45){
if(data.indexOf("-")!=-1||data.length!=0){
returnfalse;
}
}
}
returntrue;
}
varCB4949501DA_checkInt=function(data){
varkey=event.keyCode;
if((key<48||key>57)&&key!=45){
returnfalse;
}
else{
if(key==45){
if(data.indexOf("-")!=-1||data.length!=0){
returnfalse;
}
}
else{
varinput=String.fromCharCode(key)
varintData=parseInt(data+input);
if(intData>2147483647||intData<-2147483648){
returnfalse;
}
}
returntrue;
}
returntrue;
}
varCB4949501DA_checkLong=function(data){
varkey=event.keyCode;
if((key<48||key>57)&&key!=45){
returnfalse;
}
else{
if(key==45){
if(data.indexOf("-")!=-1||data.length!=0){
returnfalse;
}
}
else{
varinput=String.fromCharCode(key)
varlongstrData=data+input
if(longstrData.length>19){
returnfalse;
}
}
}
returntrue;
}
</script>
相关文章
- ASP.NET MVC使用javascript
- 宝塔面板Linux系统通过Docker部署VB.NET Asp.Net Core WebAPI应用
- .Net Core3.1 SignalR for WPF Asp.net
- .net 温故知新:【10】.NET ORM框架EFCore使用入门之CodeFirs、DBFirst
- .netLinux下部署ASP.NET环境指南(linux部署asp)
- 利用Oracle.Net实现数据库互联(oracle.net)
- .net搭建ASP.NET应用程序在Linux系统上(linux搭建asp)
- .net安装 Linux 上的 ASP.NET 环境(linux安装asp)
- .Net程序开发利用Redis提高效率(.net使用redis)
- Oracle NET突破技术界限,精彩开启新纪元(oracle net??)
- asp.net的web服务MSSQL检测ASP.NET的Web服务——利用它构建更棒的站点(mssql检测基于)
- 使用Net实现Oracle数据库的快速导入(net导入oracle)
- NET 对MySQL 的支持有限(.net不支持mysql)
- 型使用NET与MySQL开发动态类型Web应用程序(.net mysql 类)
- JAVASCRIPT对象及属性
- 代码实现打印功能(asp.net+javascript)
- ASP.NET前台javascript与后台代码调用
- asp.net实现动态显示当前时间(不用javascript不考虑开销)
- silverlight线程与基于事件驱动javascript引擎(实现轨迹回放功能)
- asp.net中javascript的引用(直接引入和间接引入)
- 在ASP.NET中使用JavaScript脚本的方法
- 利用noesis.Javascript开源组件.Net中执行javascript脚本
- 关于JavaScript命名空间的一些心得
- asp.net操作javascript:confirm返回值的两种方式