我正在研究AJAX網站功能,當用戶單擊某個按鈕時,頁面上的某些內容會更新。我遇到的問題是該按鈕位於特定的控件中,該控件只顯示在某些頁面上,我需要更新的一些信息位於Site.master文件中。這裏有一個想法發生了什麼:使用來自其他控件的單擊事件的CodeBehind更新Site.master控件
Site.master代碼我希望按鈕點擊更新。此代碼位於每個頁面的標題中,但只有某些頁面應能夠更新它。
<asp:ScriptManager ID="MainScriptManager" runat="server" />
<asp:UpdatePanel ID="Panel1" runat="server">
<ContentTemplate>
<asp:HyperLink
ID="Items" runat="server"
EnableViewState="False"
NavigateUrl="/Destination.aspx"
Text="0 items"
updatemode="Conditional" />
</ContentTemplate>
</asp:UpdatePanel>
在單獨的控件(Items.ascx)中的按鈕。這僅在特定頁面上顯示。
<asp:UpdatePanel ID="Panel1" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger controlid="UpdateItems" eventname="Click" />
</Triggers>
<ContentTemplate>
<asp:Button runat="server"
OnClick="UpdateItems"
Text="Update Items"
class="update-items"
ID="UpdateItems"
name="UpdateItems"
type="submit">
</asp:Button>
</ContentTemplate>
</asp:UpdatePanel>
而且該按鈕被點擊(Items.ascx.cs)時運行的方法。單擊時,我想要更新第一個代碼塊中的項目超鏈接。此代碼僅在特定頁面上顯示。
protected void UpdateItems(object sender, EventArgs e)
{
UpdateItems.Text = "Done!";
// can't use Items.Text = "1" or similar due to this being a separate control
}
當我點擊按鈕時,文本成功更改爲「完成!」這意味着事件的發射很好。問題是我不知道如何更新Site.master文件中的項目超鏈接。我搜索了許多不同的想法,最終空洞起來。
我想指出,這是對現有網站的更新,因此這些控件的位置無法輕鬆移動,或者根本無法移動,原因在於它們如何影響佈局以及它們在佈局中的位置的網頁。
所以我用其中的UpdateMode設置爲Conditional,我得到一個錯誤的選項: CS1061:「System.Web.UI.Page」不包含'MasterPage'的定義 – FranticJ3
對不起,'this.Page.Master' –