首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WebUserControl动态内容?

WebUserControl动态内容?
EN

Stack Overflow用户
提问于 2011-12-19 18:12:42
回答 1查看 197关注 0票数 0

我已经创建了一个WebUserControl,它包含三个html控件,两个按钮和一个输入文本。每个控件都有静态id,这有错吗?我不这么认为。控件事件是用javascript初始化的,在控件被交付给客户端后,他告诉我,如果这个用户控件在同一页上每个都有不同的事件参数,他就要放五个。任何被触发的事件都会初始化所有的用户控件,因为javascript会获取TextBox UserID。

代码如下:

代码语言:javascript
复制
            //Markup code in user control, each control have a static id
            <input id="Text_Output" type="text" runat="server" onkeypress="return saveValue(event);"    />

            <input id="Button_Add" type="button" runat="server" value="ˆ"
                style="width:21px; height:14px;vertical-align:bottom;"   />

            <input id="Button_Subtract" type="button" runat="server" value="ˇ" 
              style="width:21px; height:14px;vertical-align:top;"    />

    //Javascript function Add() in user control
    function Add(incValue, percValue) {

    var outputValue = document.getElementById('<%=Text_Output.ClientID%>').value;
    var incremeantValue = incValue;
    var precsionValue = percValue;

    if (outputValue.indexOf(".") > 0) {
        var total = (parseFloat(outputValue) + parseFloat(incremeantValue));
        document.getElementById('<%=Text_Output.ClientID%>').value = parseFloat(total).toFixed(parseInt(percValue)).toString();
    }
    else {
        if (percValue == 0) {
            document.getElementById('<%=Text_Output.ClientID%>').value = parseInt((parseFloat(outputValue) + parseFloat(incremeantValue)).toString());
        }
        else {
            var total = (parseFloat(outputValue) + parseFloat(incremeantValue));
            document.getElementById('<%=Text_Output.ClientID%>').value = parseFloat(total).toFixed(parseInt(percValue)).toString();
        }
    }
}




//Markup code used in webpage
//This button will connect(initialize) the events for the user control 
<input id="Button1" type="button" value="button" onclick="IntilizeControl()"  /><br />
<My:UserInfoBoxControl ID="JSNumeric_Control" runat="server" />

    //Javasript InilizeControl() function
    function IntilizeControl() {

     var Button_Add = document.getElementById('<%=JSNumeric_Control.FindControl("Button_Add").ClientID %>');
    //Add(IncrementValue,PrecesionValue)
     Button_Add.setAttribute("onclick", "Add(1,1)", '<%=JSNumeric_Control.FindControl("Text_Output").ClientID%>');

    var Button_Subtract = document.getElementById('<%=JSNumeric_Control.FindControl("Button_Subtract").ClientID%>');
    //Subtract(IncrementValue,PrecesionValue)
    Button_Subtract.setAttribute("onclick", "Subtract(1,1)");

    var Text_Output = document.getElementById('<%=JSNumeric_Control.FindControl("Text_Output").ClientID%>');
    alert('<%=JSNumeric_Control.FindControl("Text_Output").ClientID%>');
    Text_Output.setAttribute("onkeyup", "check()");
    Text_Output.value = 0;
}

如果我添加另一个用户控件,即使我在document.getElementByID部件上更改了用户控件的ID,它也会以相同的方式初始化,我希望每个用户控件都有自己的客户端id,这样每个控件都可以按照自己的方式操作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-20 15:07:23

代码语言:javascript
复制
   //Send the controlClientID from the source code. 
   function Add(incValue, percValue,controlID) {
    //The controlID.name.replace(/\$/g, '_') will replace the $ sign by the _ character.
    var outputValue = document.getElementById(controlID.name.replace(/\$/g, '_')).value;
    var incremeantValue = incValue;
    var precsionValue = percValue;

    if (outputValue.indexOf(".") > 0) {
        var total = (parseFloat(outputValue) + parseFloat(incremeantValue));
        document.getElementById(controlID.name.replace(/\$/g, '_')).value = parseFloat(total).toFixed(parseInt(percValue)).toString();
    }
    else {
        if (percValue == 0) {
            document.getElementById(controlID.name.replace(/\$/g, '_')).value = parseInt((parseFloat(outputValue) + parseFloat(incremeantValue)).toString());
        }
        else {
            var total = (parseFloat(outputValue) + parseFloat(incremeantValue));
            document.getElementById(controlID.name.replace(/\$/g, '_')).value = parseFloat(total).toFixed(parseInt(percValue)).toString();
        }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8559805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档