Всем привет,
Помогите, плиз, с проблемкой...
Дано:
- MasterPage с невидимым Label
- Content page с ListBox-ом и кнопкой
Задача: когда юзер кликает кнопку, что-то происходит с ListBox-ом (сейчас неважно, что именно - не в этом проблема) и Label в MasterPage-е становится видимым.
До сих пор - все работает OK, но если в Content page добавляю UpdatePanel,
Label остается невидимым.
Мне понятно, что такое поведение характерно для приложений, использующих Ajax, но тем не менее - как это решить?
MasterPage:
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="TestMasterPage.master.cs" Inherits="TestMasterPage" %>
<!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>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<asp:contentplaceholder id="ContentPlaceHolder1" runat="server">
</asp:contentplaceholder>
<asp:Label ID="Label1" runat="server" Text="Error!" Visible="False"/>
</form>
</body>
</html>
Content page:
<%@ Page Language="C#" MasterPageFile="~/TestMasterPage.master" AutoEventWireup="true" CodeFile="TestContentPage.aspx.cs" Inherits="TestContentPage" Title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:ListBox ID="ListBox1" runat="server">
<asp:ListItem Value="1">Item 1</asp:ListItem>
<asp:ListItem Value="2">Item 2</asp:ListItem>
<asp:ListItem Value="3">Item 3</asp:ListItem>
<asp:ListItem Value="4">Item 4</asp:ListItem>
</asp:ListBox>
<br />
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
Content page code behind:
protected void Button1_Click(object sender, EventArgs e)
{
//Do something...
//...
Label lbl = (Label)Page.Master.FindControl("Label1");
if (lbl != null)
lbl.Visible = true;
}