首页 > 编程 > .NET > 正文

asp.net自定义控件中注册Javascript问题解决方案

2020-01-17 23:27:31
字体:
来源:转载
供稿:网友

复制代码 代码如下:

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 <span style="color:#ff0000;">CB4949501DA_checkLong </span>= 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 <span style="color:#ff0000;">CB4949501DA_checkLong</span>(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>

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表