在ASP.NET Web用户控件中生成客户端自定义事件
Make a Client-Side Custom Events in ASP.NET Web-User Control
我正在用Text-box
开发Web-user control
。现在我需要从我的aspx page
调用Text-box's
客户端事件。有人能告诉我如何创建客户端自定义事件吗。
第1版
我需要在我的用户控件中创建自定义客户端事件。因此,我可以使用此事件从使用自定义控件的.aspx
页面调用任何java-script
函数。
第2版
我的控制
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl2.ascx.cs" Inherits="WebUserControl2" ClientIDMode="Predictable" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxControl" %>
<link rel="stylesheet" href="GridViewCSSThemes/YahooGridView.css" type="text/css" media="screen" />
<script type="text/javascript">
function isNumber(evt, id) {
var a = document.getElementById(id).value;
evt = (evt) ? evt : window.event;
var charCode = (evt.which) ? evt.which : evt.keyCode;
if (a.indexOf(".") >= 0
&& charCode == 190) {
return false;
}
else
if (charCode != 46 && charCode != 37 && charCode != 39 && charCode != 34 && charCode != 190 && charCode != 110 && charCode > 31 && (charCode < 48 || charCode > 57)) {
if (charCode < 96 || charCode > 105) {
return false;
}
}
return true;
}
function formateValue(id) {
var a = document.getElementById(id).value;
var f = a.split(".");
if (f.length > 2) {
document.getElementById(id).value = f[0] + "." + f[1];
}
a = document.getElementById(id).value;
if (a.indexOf(".") >= 0) {
document.getElementById(id).value = a.substr(0, a.indexOf(".") + 1) + a.substr(a.indexOf(".") + 1, 4);
}
else if (a.length > 7) {
document.getElementById(id).value = a.substr(0, 7) + "." + a.substr(7, a.length);
}
document.getElementById(id).title = "Input value: " + document.getElementById(id).value;
document.getElementById('<%= Hidden_Value.ClientID%>').value = document.getElementById(id).value;
}
function test(id) {
alert(document.getElementById(id).value);
}
</script>
<div style="position:relative;border:none;" id="BssWebMasked">
<asp:HiddenField ID="Hidden_Value" Value="" runat="server" />
<asp:TextBox CssClass="tb10" Width="90" ID="txtAmt" runat="server" style="text-align:right;"
MaxLength="12" onkeydown="return isNumber(event, this.id)" onkeyup="formateValue(this.id)" >
</asp:TextBox>
<ajaxToolkit:FilteredTextBoxExtender ID="FilteredTextBoxExtender1" runat="server" TargetControlID="txtAmt"
ValidChars="0123456789." Enabled="True" />
<asp:CompareValidator ID="CVAmt" runat="server"
ErrorMessage="Invalid value" Display="Dynamic"
Operator="DataTypeCheck" Type="String" ControlToValidate="txtAmt" >
</asp:CompareValidator>
</div>
.aspx代码
<%@ Register TagPrefix="uc1" TagName="UCMask" Src="~/WebUserControl2.ascx" %>
<uc1:UCMask runat="server" DValue="" ID="txtRate" />
在这里,我需要在onblur
事件上调用java-script function
。
示例:
<uc1:UCMask runat="server" DValue="" ID="txtRate" onCustomBlur="myFunction(this.id);"/>
对于用户控件的"OnLoad"事件,您需要注册启动客户端脚本,在那里您将获得TextBox.ClientID并编写JavaScript代码。类似。。
string javaScript = string.format("$(#'{0}').on('input', function() {alert('change occured');})", MyTextBox.ClientID);
Page.ClientScript.RegisterClientScriptBlock (this.GetType(),
"MyClientChangeEventKey",
javaScript,
true);
相关文章:
- 使用浏览器在页面(客户端)上运行自定义JavaScript来模拟点击?怎么做
- 是Google自定义搜索API的客户端请求数量有限
- 为什么自定义 JavaScript 文件放在客户端文件夹中时不在我的 Meteor 模板上呈现
- 自定义验证在服务器端有效,但在客户端无效
- 客户端自定义验证不是't正在执行
- TextBox自定义Web控件和JavaScript客户端验证
- 自定义验证程序客户端验证函数未触发
- 获取嵌套在聚合物纸张对话框中的自定义Web组件内内容的客户端高度
- 类似猫鼬的客户端架构定义
- Ajax - Spring 发送 javascript 对象并接受为自定义对象.客户端发送的请求在语法上不正确
- 将服务器端的自定义验证器替换为客户端
- 是否可以将自定义命令添加到 NodeJS 的 Redis 客户端
- 使用单选按钮进行客户端自定义验证
- 在ASP.NET Web用户控件中生成客户端自定义事件
- 自定义验证摘要HTML帮助程序没有'不在客户端工作
- ASP.NET 2.0自定义客户端验证在Internet Explorer中不起作用
- 使用lightswitch html客户端中的自定义方法将数据保存到sql server中
- 客户端未定义JSON服务类
- 单选按钮的客户端自定义验证器
- 套接字.io ReferenceError客户端未定义