Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET-母版页中的“更新”面板,内容页中的“刷新”按钮_Asp.net_Updatepanel_Master Pages_Ajax.net_Contentplaceholder - Fatal编程技术网

ASP.NET-母版页中的“更新”面板,内容页中的“刷新”按钮

ASP.NET-母版页中的“更新”面板,内容页中的“刷新”按钮,asp.net,updatepanel,master-pages,ajax.net,contentplaceholder,Asp.net,Updatepanel,Master Pages,Ajax.net,Contentplaceholder,我在母版页中有更新面板: <asp:ScriptManager id="CartScript" runat="server"></asp:ScriptManager> <asp:UpdatePanel id="CartBox" runat="server" updateMode="Conditional"> <ContentTemplate> Košík [ <asp:HyperLink NavigateUrl="~

我在母版页中有更新面板:

<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>
但它确实出现了错误:在UpdatePanel“CartBox”中找不到用于触发器的ID为“BuyButton”的控件。

所以我尝试从母版页添加:

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"));
    }
}
但我也犯了同样的错误-(

那么,您能告诉我如何将内容页中的按钮添加到更新面板中以刷新它吗?

Edit


BuyButton
按钮放在内容页上自己的
UpdatePanel
内。将您的
AsyncPostBackTrigger
添加到新的
UpdatePanel
,然后它将能够找到按钮,并将使用母版页中的
ScriptManager

@StackOverflowException:啊,错过了详细介绍。谢谢:)
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);  
}
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"));
    }
}