将javascript对象包装到.Net usercontrol

时间:2010-09-17 16:23:19

标签: javascript

我有一个问题,我不知道如何开始......

我们都知道DOM元素有自己的事件,比如'onChange'。那么TextBox可以触发onChange事件,任何人都可以注册它们。

我有一个带有2个文本框的.NET用户控件(国家代码+电话)。使用.NET CustomValidator验证文本框。我有服务器端方法来处理控件,例如'Value'女巫给我一个带有cc + phone的独特字符串。

客户方怎么样? ......

我想在“javascript控件”中包含2个文本框和customvalidator。我很乐意创建与我的控件一起工作的函数作为一个独特的实体。 我想做的事情是:

var x = document.getElementById('myControlId'); //我的控件ID是环绕的 x.value(“+ 351875647356); //巫婆将分别填写两个文本框。

这可能吗?该怎么做?

感谢大家。

1 个答案:

答案 0 :(得分:0)

通过创建一个javascript对象ala a c#/ vb.net 1class来代表你的控件,你可以做你想要的wnat。你的javascript实例会保留对各个元素的引用,你可以使用自定义方法来完成繁重的工作。

<script>

function MyUserControl (ccID, phoneID) {

    // set references to elements
    var _ccInput = document.getElementById(ccID);
    var _phoneInput = document.getElementById(phoneID);

    this.setValues = function (value) {

        // TODO process your input here
        // _ccInput.value = ... ;
        // _phoneInput .value = ... ;
    }
}

</script>

您可以通过从服务器端生成javascript来创建对象的新实例。

string script = string.format("var myControl = new MyUserControl('{0}','{1}');", 
    ccTextbox.ClientID, phoneTextbox.ClientID);
ClientScript.RegisterStartupScript(this.GetType(), "uniqueKeyName", script, true);

在客户端创建后,您可以从一些javascript中引用它。

<script>
    myControl.setValues("+351875647356");
</script>