asp.net自定义控件中注册Javascript的问题

        protected override void OnPreRender(EventArgs e)
        {

            base.OnPreRender(e);
            RenderJS();
        }

        private void RenderJS()
        {
            if (!Page.ClientScript.IsClientScriptBlockRegistered(SCRIPT_ID))//如果还没有注册语句,则注册
            {
                Page.ClientScript.RegisterClientScriptBlock(this.GetType(),SCRIPT_ID,SCRIPT_CONTENT);
            }

        }
        private const string SCRIPT_ID = "5B7A061B93D546A7A2601D56A8738DB9";//自定义标识Guid
        private const string SCRIPT_CONTENT = "<script type=\"text/javascript\">\nvar CB4949501DA_checkDouble = function (data) {\nvar key = event.keyCode;\nif ((key < 48 || key > 57) && key != 46 && key != 45) {\nreturn false;\n}\nelse {\nif (key == 46) {\nif (data.indexOf(\".\") != -1 || data.length == 0)\nreturn false;\n}\nelse if (key == 45) {\nif (data.indexOf(\"-\") != -1 || data.length != 0) {\nreturn false;\n}\n}\n}\nreturn true;\n}\nvar CB4949501DA_checkInt = function (data) {\nvar key = event.keyCode;\n\nif ((key < 48 || key > 57) && key != 45) {\nreturn false;\n}\nelse {\nif (key == 45) {\nif (data.indexOf(\"-\") != -1 || data.length != 0) {\nreturn false;\n}\n}\nelse {\nvar input = String.fromCharCode(key)\nvar intData = parseInt(data + input);\nif (intData > 2147483647 || intData < -2147483648) {\nreturn false;\n}\n}\nreturn true;\n}\nreturn true;\n}\nvar CB4949501DA_checkLong = function (data) {\nvar key = event.keyCode;\n\nif ((key < 48 || key > 57) && key != 45) {\nreturn false;\n}\nelse {\nif (key == 45) {\nif (data.indexOf(\"-\") != -1 || data.length != 0) {\nreturn false;\n}\n}\nelse {\nvar input = String.fromCharCode(key)\nvar longstrData = data + input\nif (longstrData.length > 19) {\nreturn false;\n}\n}\n}\nreturn true;\n}\n</script>\n";

 

再添加代码去调用写入的javascript函数:

protected override void AddAttributesToRender(System.Web.UI.HtmlTextWriter writer)
        {

            base.AddAttributesToRender(writer);
            writer.AddAttribute("onkeypress", "return CB4949501DA_checkLong(this.value);");}

 

另外,引用文件是这样的。。

if (!Page.ClientScript.IsClientScriptIncludeRegistered("引用js文件1"))//如果还没有引用,则引用
            {
                Page.ClientScript.RegisterClientScriptInclude("引用js文件1", "JS/MYJS.JS");
            }

 

 

生成的页面查看源代码效果如下:

<script src="JS/MYJS.JS" type="text/javascript"></script>
<script type="text/javascript">
var CB4949501DA_checkDouble = function (data) {
var key = event.keyCode;
if ((key < 48 || key > 57) && key != 46 && key != 45) {
return false;
}
else {
if (key == 46) {
if (data.indexOf(".") != -1 || data.length == 0)
return false;
}
else if (key == 45) {
if (data.indexOf("-") != -1 || data.length != 0) {
return false;
}
}
}
return true;
}
var CB4949501DA_checkInt = function (data) {
var key = event.keyCode;

if ((key < 48 || key > 57) && key != 45) {
return false;
}
else {
if (key == 45) {
if (data.indexOf("-") != -1 || data.length != 0) {
return false;
}
}
else {
var input = String.fromCharCode(key)
var intData = parseInt(data + input);
if (intData > 2147483647 || intData < -2147483648) {
return false;
}
}
return true;
}
return true;
}
var CB4949501DA_checkLong = function (data) {
var key = event.keyCode;

if ((key < 48 || key > 57) && key != 45) {
return false;
}
else {
if (key == 45) {
if (data.indexOf("-") != -1 || data.length != 0) {
return false;
}
}
else {
var input = String.fromCharCode(key)
var longstrData = data + input
if (longstrData.length > 19) {
return false;
}
}
}
return true;
}
</script>

 

时间: 2024-09-30 14:07:22

asp.net自定义控件中注册Javascript的问题的相关文章

asp.net自定义控件中注册Javascript问题解决方案_实用技巧

复制代码 代码如下: protected override void OnPreRender(EventArgs e) { base.OnPreRender(e); RenderJS(); } private void RenderJS() { if (!Page.ClientScript.IsClientScriptBlockRegistered(SCRIPT_ID))//如果还没有注册语句,则注册 { Page.ClientScript.RegisterClientScriptBlock(t

浅谈ASP.NET Ajax中调用JavaScript的服务

现在,可以像我们现在所使用的那样使用HelloWorldService服务了.下面,我给出了一个比较清晰完成的示例代码.ScriptManager 标签也进行了显示.注意我们添加 了一个clientServiceHelper.js 文件.我们在那个文件中放置了所有客户端和WCF通信的JavaScript函数. <asp:ScriptManager ID="ScriptManager1" runat="server"> <Scripts> &l

asp.net自定义控件中ToolboxBitmap元数据设置详细说明

在asp.net应用的过程中,少不了的会创建一些自定义服务器控件,但控件完成后,默认的图标是统 一的蓝色齿轮的图标,没有个性,也不能很好的直观表示控件的作用,这时我们需要自己添加自定义的 工具图标 自定义图标为16像素宽高,256色的BMP图片,并设置图标文件的BuildingAction(生成操作)属性为嵌 入的资源,但我们添加完成后在工具箱里显示不了自定义图标,这与我们类文件的名称空间有关 例一: 说明:控件未定义名称空间,图标文件名与控件的名称一致 控件集名称为:MyControls.dl

自当以控件 asp 实现-ASP当中自定义控件的问题

问题描述 ASP当中自定义控件的问题 类似于这样,左边提供工具栏,右边可以使用工具栏提供的工具. 这种功能该如何实现,求大神们指点一二. 解决方案 参考:http://www.zhangxinxu.com/wordpress/2011/02/html5-drag-drop-%E6%8B%96%E6%8B%BD%E4%B8%8E%E6%8B%96%E6%94%BE%E7%AE%80%E4%BB%8B/http://www.shejidaren.com/jquery-drag-and-drop-pl

ASP.NET自定义控件组件开发 第三章 为控件添加事件 后篇

前一篇文章只是简单的说了下事件,但是大家应该方法,在ASP.NET自定义控件中只是简单那么定义事 件是行不通.如果大家开发的是WinForm中的事件,之前的定义可能没有什么大的问题,只是在效率方法 欠考虑而且,还是可以运行的. 下面我们就回到ASP.NET中的事件. 大家也许看了我们之前定义的事件,确实,事件一般是那么定义的,但是那样定义事件后的,运行起 来的效率不搞,因为那样定义事件后,编译器在编译事件代码的时候,会自动的为我们加入很多多线程安 全的代码,就是说,虽然我们只是定义几行代码,大但

html网页-如何在HTML文件中通过javascript获得当前网页的绝对路径和相对路径

问题描述 如何在HTML文件中通过javascript获得当前网页的绝对路径和相对路径 各位大神,我希望在html文件,(注意:不是jsp文件或asp文件)中通过javascript获得当前网页的地址(磁盘地址).换句话说,比如我正在打开的网页文件是index.htm,该网页文件放在了d:webconfightml路径下,我如何在index.htm文件中获得它自己的磁盘路径?即:如何获得路径"d:webconfightml"? 注意:不能有服务器端的支持,也就是我的网页不是运行在服务器

session-ASP.NET IHttpModule 中注册EndRequest事件使用Session异常

问题描述 ASP.NET IHttpModule 中注册EndRequest事件使用Session异常 在IHttpModule中注册EndRequest后,其他地方使用Session报错. "System.Web.HttpException"类型的异常在 System.Web.dll 中发生,但未在用户代码中进行处理 其他信息: 只有在配置文件或 Page 指令中将 enableSessionState 设置为 true 时,才能使用会话状态.还请确保在应用程序配置的 <sys

ASP.Net2.0中自定义控件在page中的注册

asp.net|控件 今天在网上看到ASP.Net 2.0中注册自定义控件的好方法,记录如下. 在web.config 文件中全局注册自定义控件 <system.web>      <pages>        <controls>          <add tagPrefix="rx" assembly="HYLQ.Component" namespace="HYLQ.Component"/> 

ASP.NET中整合JavaScript的技巧

尽管ASP.NET提供了一个强壮的平台,但是开发者也不应忽视诸如JavaScript这样成熟的技术.在这篇文章中,Tony Patton将向您解释在Web开发中如何将JavaScript与ASP.NET控件进行整合. 尽管Web开发平台提供了灵活性和众多功能,您经常希望或需要依赖现有的技术来完成一项必须的任务,一个好的例子就是ASP.NET,它提供了一个强大的开发平台,但是同时也不应忽略像JavaScript这样成熟的技术,在这篇文章中,我将向您讲解如何将JavaScript代码联结到ASP.N