从消费应用程序JavaScript调用用户控件JavaScript函数

时间:2012-12-11 10:23:27

标签: javascript asp.net webusercontrol

我有一个名为UserControl.ascx的Web用户控件和一个JavaScript函数'GetValues()'来返回一些嵌入在该ascx页面中的值。我已经将ascx页面编译成dll并在另一个web应用程序中使用它。但现在问题是当我尝试从Web应用程序调用用户控件JavaScript函数时,JS Debugger显示'GetValues'未定义  错误。有没有办法解决这个问题?

ASCX文件中的

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="ICEImage.ascx.cs" Inherits="ICEImage" %>
   <div>                 
         <asp:TextBox ID="txtValue" runat="server" BackColor="#FFFFC0" ReadOnly="True" Width="150px" 
   </div>
<script type="text/javascript">
function GetValue()
{
  return parseInt(document.getElementById('<%=txtValue.ClientID%>').value);
}
</script>

ASPX文件:

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register TagPrefix="ASP" Assembly="App_Web_iceimage.ascx.cdcab7d2" Namespace="ASP" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Sample Page</title>
</head>
<body style="background-color: #383838">
    <form id="form1" runat="server">
    <ASP:iceimage_ascx ID="ICEImage1" runat="server"></ASP:iceimage_ascx>  
    <button id="btnSave" style="width: 85px; height: 29px" type="button" onclick="GetValue()">Save</button>          
    </form>
</body>  
</html>

1 个答案:

答案 0 :(得分:0)

您可以从服务器代码中定义您的功能,并将其添加到Page_PreRender上,例如

if (!Page.ClientScript.IsClientScriptBlockRegistered("FunctionGetValue"))
        {
            string script = @"function GetValue() {
                   return parseInt(document.getElementById('"+txtValue.ClientID+"').value);
                   }";
            ScriptManager.RegisterClientScriptBlock(this.Page, this.Page.GetType(), "FunctionGetValue", script, true);

        }