2011-08-15 42 views
0

当我点击href链接时出现此错误:Microsoft JScript运行时错误:属性'walkRedCarpet'的值为null或未定义,而不是Function对象。c#ajax updatepanel只在.net masterpages中触发客户端事件

对我而言,这意味着它不会触发OnClientClick事件并将OnClick视为客户端事件。我错了吗?

链接(a href)通过代码隐藏的PageLoad事件以编程方式生成,并且是占位符的内容。

CODE

<%@ 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> 

占位符录POSTCOMPILE

<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上搜寻过,看了无数个例子,直到我的大脑非常柔软和糊状。请温柔。

+0

因此,有可能一旦呈现占位符的内容不是runat ='服务器'元素?意思是,锚标记不在服务器端运行。 –

+0

你是如何从onLoad生成代码的? – Hammerstein

回答

0

我不得不实际使用一个LinkBut​​ton和这样的:

 UpdatePanel1.UpdateMode = System.Web.UI.UpdatePanelUpdateMode.Conditional; 
     UpdatePanel1.Update(); 

得到它才能正常工作。

祝你好运!

0

我半睡半醒,我的第一次阅读让我跳过了“runat =”服务器“”你在那里。你的行为是正确的,那么生成的HTML是什么样的?

+0

据我所知,它们都被正确标记为runat =“server”。 –

+0

PLACEHOLDER CONTENTS POSTCOMPILE是生成的html。 –

相关问题