2010-08-13 2 views
0

제 폼에는 레이블과 버튼 컨트롤이 있습니다. 기본적으로 레이블이 표시됩니다. 사용자가 버튼을 클릭하면 레이블이 보이도록 false로 설정했습니다. 간단한 버튼의 경우 작동하지만 버튼에 updatePanel을 추가하면 이벤트가 시작되지만 레이블이 보이지 않게됩니다. false. 그냥 시도해보십시오. 왜 이런 일이 일어나고 있는지, 그리고 해결책이 무엇인지 말해 주실 수 있습니다.업데이트 패널에 대해 혼란스러워합니다.

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

<asp:fileupload ID="Fileupload1" runat="server"></asp:fileupload>  
<asp:Label ID="Label1" runat="server" Text="Label" ></asp:Label>  
<asp:UpdatePanel ID="up" runat ="server" > 
    <ContentTemplate > 
    <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" /> 
    </ContentTemplate> 
</asp:UpdatePanel> 

protected void Button1_Click(object sender, EventArgs e) 
{ 
    Response.Write("hello"); 
    Label1.Visible = false; 
} 

답변

1

업데이트 패널에서도 라벨을 포장해야합니다.

는 업데이트 패널이 페이지의 섹션을 업데이트합니다

<asp:fileupload ID="Fileupload1" runat="server"></asp:fileupload> 
<asp:UpdatePanel ID="up" runat ="server" >  
    <ContentTemplate> 
     <asp:Label ID="Label1" runat="server" Text="Label" ></asp:Label>  
     <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" /> 
    </ContentTemplate> 
</asp:UpdatePanel> 

보십시오. 라벨이 업데이트 패널에 포함되지 않았으므로 새 값으로 업데이트되지 않습니다.

0

레이블을 UpdatePanel로 랩핑하고 UpdateMode를 "조건부"로 설정하는 것이 좋습니다.

<asp:UpdatePanel ID="up" runat ="server" UpdateMode="Coditional" >  
    <ContentTemplate> 
     <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>     
    </ContentTemplate> 
    <Triggers> 
     <asp:AsyncPostBackTrigger ControlID="Button1" /> 
    </Triggers> 
</asp:UpdatePanel> 
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" /> 

감사합니다.

관련 문제