0
代碼中使用我有一個aspx頁面,從一個母版頁繼承,有兩個內容佔位符,就像這樣:用戶控制的變化性,在用戶控件的背後
<%@ Register Src="Controls/YearBook/YearBookExpander.ascx" TagName="YearBookExpander" TagPrefix="uc1" %>
<%@ Register Src="Controls/YearBook/YearBook.ascx" TagName="YearBook" TagPrefix="uc2" %>
<%@ Register Src="Controls/YearBook/YearBookSearch.ascx" TagName="YearBookSearch" TagPrefix="uc3" %>
<asp:Content ID="Content1" ContentPlaceHolderID="cphHead" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="cphMenu" runat="Server">
<asp:UpdatePanel ID="upExpander" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<nav id='main-nav'>
<asp:Panel ID="pnlExpander" runat="server" CssClass="navigation">
<uc1:YearBookExpander ID="ybExpander" runat="server" OnSearchClickEvent="ybExpander_Search" />
</asp:Panel>
</nav>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="cphPage" runat="Server">
<asp:Panel ID="pnlPage" runat="server">
<uc2:YearBook ID="YearBook1" runat="server" ContentVisible="true" />
<uc3:YearBookSearch ID="ybSearch" runat="server" />
</asp:Panel>
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="cphScripts" runat="Server">
<script src="../Scripts/PersianCalendar.js" type="text/javascript"></script>
<script type="text/javascript">
Calendar = 1;
</script>
</asp:Content>
對於一些JavaScript原因,我不能把我的「cphPage」內容進入更新面板,我需要根據cphMenu中單擊的鏈接來顯示/取消顯示cphPage的用戶控件。 這樣做我添加面板到用戶控件的更新面板,並希望看到或者當回傳發生unvisible這個面板,所以我定義每個用戶控件的屬性(在cphPage內容佔位符):
[Bindable(true, BindingDirection.TwoWay)]
public bool ContentVisible
{
get { return Convert.ToBoolean(Session["ContentVisible"]); }
set { Session["ContentVisible"] = value; }
}
,並在後面的變化值基地之一的aspx代碼點擊鏈接:
private void uExpander_ExpanderClicked(object sender, ExpanderEventArgs e)
{
switch (e.Clicked)
{
case "YearBook":
YearBook1.ContentVisible = true;
ybSearch.ContentVisible = false;
break;
case "Search":
ybSearch.ContentVisible = true;
YearBook1.ContentVisible = false;
break;
default:
YearBook1.ContentVisible = true;
ybSearch.ContentVisible = false;
break;
}
}
和用戶控件我檢查這個值,可見光/ unvisible用戶控件的面板:
if (ContentVisible)
{
pnlCalendar.Visible = true;
pnlDefaultEvents.Visible = true;
pnlAddEvent.Visible = true;
}
else
{
pnlCalendar.Visible = false;
pnlDefaultEvents.Visible = false;
pnlAddEvent.Visible = false;
}
但是這段代碼不起作用,因爲用戶控件在執行aspx代碼之前啓動...... 我該如何做這個場景?還有什麼其他的解決方案?
謝謝
謝謝你,你的解決方案解決我的問題:) –