2012-10-02 40 views
0

我使用微软的官方示例:无法访问asp.net中的控件updatepanel

当我尝试在click事件中从代码隐藏访问MyLabel时,MyLabel为NULL。

这是为什么?

<asp:ScriptManager ID="PageScriptManager" runat="server" /> 
<asp:Button ID="MyButton" Text="Click Me" runat="server" onClick="MyButton_Clicked" /> 
<asp:UpdatePanel ID="MyUpdatePanel" runat="server"> 
<Triggers> 
    <asp:AsyncPostBackTrigger ControlID="MyButton" EventName="Click" /> 
</Triggers> 
    <ContentTemplate> 
    <asp:Label ID="MyLabel" Text="OldText" runat="server" /> 
    </ContentTemplate> 
</asp:UpdatePanel> 




private void MyButton_Clicked(object sender, EventArgs e) 
{ 
    MyLabel.Text = "NewText!"; 
} 

UPDATE此代码不能工作,为什么? MyLabel在服务器端总是NULL?

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" 
    CodeFile="Default.aspx.cs" Inherits="_Default" %> 

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent"> 
</asp:Content> 
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"> 

    <asp:ScriptManager runat="server" ID="xx"> 
    </asp:ScriptManager> 

<asp:ImageButton OnClick="OnClickRefreshButton" ID="RefreshImageButton" runat="server" Width="100px" /> 
<asp:UpdatePanel ID="MyUpdatePanel" runat="server"> 
    <Triggers> 
     <asp:AsyncPostBackTrigger ControlID="RefreshImageButton" EventName="Click" /> 
    </Triggers> 
    <asp:ContentTemplate> 
     <asp:Label ID="MyLabel" Text="OldText" runat="server" /> 
    </asp:ContentTemplate> 
</asp:UpdatePanel> 
</asp:Content> 

protected void OnClickRefreshButton(Object sender, ImageClickEventArgs e) 
     {  

      MyLabel.Text = "NewText!"; 
     } 
+0

你好,尝试把按钮和标签“更新面板”内。 – TheNewOne

+0

该按钮已经在updatepanel中。当我把按钮放在那里,然后我得到这个异常:在UpdatePanel'MyUpdatePanel'中找不到触发器的ID为'RefreshImageButton'的控件。 描述 – msfanboy

+0

试着把这个''放在''的标签下,然后关闭它'' - 因此它应该是然后itemtemplate然后按钮。 – TheNewOne

回答

1

尝试将功能更改为protected,而不是private,它为我工作。希望它解决了你的问题

+0

是的,这个解决方案是正确的,因为我们需要指定访问说明符为Protected – Pushpendra

+0

@TheNewOne它不起作用,请参阅上面我更新的问题。 – msfanboy

+0

也许这会帮助你更新的问题http://stackoverflow.com/questions/534438/imagebutton-event-not-firing-inside-update-panel – TheNewOne