0

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

在 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>
4

1 回答 1

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);

        }
于 2012-12-11T10:37:23.563 回答