【发布时间】:2011-08-19 05:23:47
【问题描述】:
单击 href 链接时出现此错误:Microsoft JScript 运行时错误:属性“walkRedCarpet”的值为 null 或未定义,不是函数对象。
对我来说,这意味着它没有触发 OnClientClick 事件并将 OnClick 视为客户端事件。我错了吗?
链接 (a href) 是通过代码隐藏 PageLoad 事件以编程方式生成的,是占位符的内容。
代码
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="MyFile.aspx.cs" Inherits="MyProject.MyFile" %>
<script runat="server">
protected void walkRedCarpet(int eventID)
{
}
</script>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
<script type="text/javascript">
function Call() {
return Page_ClientValidate();
}
</script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="updtPnlRedCarpet" runat="server">
<asp:PlaceHolder ID="PlaceHolder2" runat="server"></asp:PlaceHolder>
</asp:Content>
占位符内容代码隐藏
<a href='#' OnClick='walkRedCarpet(" + eventID + ");' OnClientClick='return Call()' runat='server' id='linkEventShowImageSet'><img Width='125' Height='95'src='Images/" + strEventThumb.ToString() + "' border='0'></a>
占位符内容后编译
<a href='#' OnClick='walkRedCarpet(1);' OnClientClick='return Call()' runat='server' id='linkEventShowImageSet'><img Width='125' Height='95'src='Images/event-1-ready.jpg' border='0'></a>
我对 AJAX 很陌生。我搜索了 webbernet 并查看了无数示例,直到我的大脑变得非常柔软和糊状。请温柔一点。
【问题讨论】:
-
那么..占位符的内容是否可能一旦渲染就不是 runat='server' 元素?意思是,锚标签没有在服务器端运行。
-
你是如何从 onLoad 生成代码的?