ASP.NET - панель обновления на главной странице, кнопка обновления на странице содержимого - PullRequest
6 голосов
/ 26 февраля 2011

У меня есть панель обновления на главной странице:

<asp:ScriptManager id="CartScript" runat="server"></asp:ScriptManager>       
<asp:UpdatePanel id="CartBox" runat="server" updateMode="Conditional">
  <ContentTemplate>
    Košík [ <asp:HyperLink NavigateUrl="~/Account/Login.aspx" ID="ShoppingCart" runat="server" text="" /> ] <asp:LinkButton ID="DeleteCart" runat="server" Text="Vymazat košík" OnClick="ThrowCart_Click" />
  </ContentTemplate>
</asp:UpdatePanel>

и кнопка «Купить» на странице содержимого:

<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">    
  <asp:Button ID="BuyButton" Runat="server" Text="Přidat do košíku" onclick="Buy_Click" />
</asp:Content>

Поэтому мне нужно добавить на панель обновления AsyncPostBackTrigger для этой кнопки.

Сначала я попытался добавить его со страницы содержимого:

protected void Page_Load(object sender, EventArgs e)  
{  
    AsyncPostBackTrigger trigger = new AsyncPostBackTrigger();         
    trigger.ControlID = "BuyButton";  
    UpdatePanel panel = (UpdatePanel)Master.FindControl("CartBox");   
    if (panel != null)  
    {  
        panel.Triggers.Add(trigger);  
    }  
    ScriptManager script = (ScriptManager)Master.FindControl("CartScript");  
    script.RegisterAsyncPostBackControl(BuyButton);  
}

Но произошла ошибка: Не удалось найти элемент управления с идентификатором BuyButton для триггера в UpdatePanel CartBox.

Итак, я попробовал добавить с главной страницы:

protected void Page_Load(object sender, EventArgs e)
{                
    if ((Button)MainContent.FindControl("BuyButton")!=null)
    {
        AsyncPostBackTrigger trigger = new AsyncPostBackTrigger();
        trigger.ControlID = ((Button)MainContent.FindControl("BuyButton")).ID;
        CartBox.Triggers.Add(trigger);
        CartScript.RegisterAsyncPostBackControl((Button)MainContent.FindControl("BuyButton"));
    }
}

Но я получил ту же ошибку.: - (

Так можете ли вы сказать мне, как я могу добавить в свою панель обновлений, что кнопка со страницы содержимого может обновить ее?

1 Ответ

2 голосов
/ 26 февраля 2011

Редактировать

Поместить кнопку BuyButton внутри собственной UpdatePanel также на странице содержимогоДобавьте ваш AsyncPostBackTrigger к этому новому UpdatePanel, и тогда он сможет найти кнопку и будет использовать ScriptManager с главной страницы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...