有没有办法将函数关联到usercontrol

时间:2012-02-10 20:52:25

标签: c# javascript jquery .net

有没有办法将javascript函数与用户控件相关联?假设我有一个用.ascx编写的名字控件。我可以定义一个与名称控制相关联的客户端函数,比如.clear()。清除功能将清除该控件的所有元素。我知道我可以创建clear()javascript函数,但这将是全局javascript函数,不一定与名称控件绑定。我想将函数绑定到名称控件,以便给定我对name对象的引用,我应该能够简单地从该引用中调用该函数,如:

name.clear();

我知道这可以使用MS Ajax框架完成,但是想知道我是否可以使用jQuery做类似的事情。

2 个答案:

答案 0 :(得分:0)

如果通过“clear”表示将文本/密码输入,textareas和select元素的值设置为空字符串,并将单选按钮和复选框设置为!checked,则可以执行以下操作:

$("#someid").find('select,textarea,input[type="text"],input[type="password"]').val('');
$("#someid").find('input:radio,input:checkbox').prop('checked',false);

或者作为插件:

(function( $ ) {
  $.fn.clearChildren = function() {
    this.find('select,textarea,input[type="text"],input[type="password"]').val('');
    this.find('input:radio,input:checkbox').prop('checked',false);
    return this;
  };
})( jQuery );

$("#someid").clearChildren();

演示:http://jsfiddle.net/nnnnnn/AvfUz/

(jQuery确实有一个“:input”选择器,可以选择所有选择,textareas和输入,但是你不想设置复选框和无线电的值,所以它们需要单独完成。)

答案 1 :(得分:0)

用户控件本身不会呈现为实际的html元素,但是可以从客户端脚本中引用用户控件中实际呈现为html元素的任何部分。

您需要将控制客户端ID从页面或用户控件写入html,如下所示:

<script type="text/javascript"> 
    $('#<%= TheControl.ClientID %>').clearChildren();
</script>

用于清除孩子的jQuery函数在@nnnnnn的答案中定义。