簡體   English   中英

更新面板中的按鈕無法從內容頁面使用

[英]Button inside Update Panel not working from Content Page

我面臨內容頁面內更新面板的問題,如果我將按鈕事件之類的控件放到內容頁面的UpdatePanel中,則不會觸發。

以下是我的母版頁和內容頁的結構。

在母版頁上,我正在使用更新面板進行電子郵件注冊,因此在母版頁上可以正常工作。 但是,當我嘗試在內容/子頁面上添加更新面板時,由於事件原因按鈕事件不會觸發。 我看了幾個例子,但似乎沒有任何效果。

下面是兩個頁面的結構,不確定我在做什么錯

母版頁

    <%@ Master Language="C#" AutoEventWireup="true" CodeFile="MainMP.master.cs" Inherits="MainMP" %>
    <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
    <!DOCTYPE html>

    <html>
    <head runat="server">
        <title></title>
        <!--  -->
          <asp:ContentPlaceHolder id="head" runat="server">
        </asp:ContentPlaceHolder>
         <!--  -->
    </head>
    <body>
        <form id="form2" runat="server">
        <asp:ScriptManager runat="server" EnablePageMethods="true">
            <Scripts>
                <asp:ScriptReference Name="jquery" />
                <asp:ScriptReference Name="WebForms.js" Assembly="System.Web" />
                <asp:ScriptReference Name="WebUIValidation.js" Assembly="System.Web" />
            </Scripts>
        </asp:ScriptManager>



 <!-- Page Content-->
      <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">

 </asp:ContentPlaceHolder>
                    <!-- Page Content -->

    </form>

</body>
</html>

內容頁

<%@ Page Title="" Language="C#" MasterPageFile="~/MainMP.master" AutoEventWireup="true" CodeFile="Blog.aspx.cs" Inherits="Blog" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">

<!-- Some Page content ...... -->

          <asp:UpdatePanel ID="updxxxx" runat="server" UpdateMode="Conditional">
               <ContentTemplate>

                <asp:Panel ID="Panel1" runat="server" >
                     <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
                </asp:Panel>
            </ContentTemplate>
        </asp:UpdatePanel>


</asp:Content>

如果您的按鈕在更新面板之外,則需要將該按鈕設置為更新面板中的觸發器,以使其啟動回發。

可能您可以進行如下測試,然后添加AjaxControlToolkit。

主:

 <%@ Master Language="C#" AutoEventWireup="true" CodeBehind="SiteTest.master.cs" Inherits="ZeroBig.m_test.SiteTest" %> <!DOCTYPE html> <html> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <asp:ContentPlaceHolder ID="head" runat="server"> </asp:ContentPlaceHolder> </head> <body> <form id="form1" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> <div> <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server"> </asp:ContentPlaceHolder> </div> </form> </body> </html> 

頁:

 <%@ Page Title="" Language="C#" MasterPageFile="~/m_test/SiteTest.Master" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="ZeroBig.m_test.WebForm1" %> <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> <asp:UpdatePanel ID="updxxxx" runat="server" UpdateMode="Conditional"> <ContentTemplate> <asp:Panel ID="Panel1" runat="server"> <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" /> <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> </asp:Panel> </ContentTemplate> </asp:UpdatePanel> </asp:Content> 

Page.cs

public partial class WebForm1 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        Label1.Text = "hello";
    }
}

如果單擊該按鈕,標簽文本將更改為“ hello”,面板將更新。 測試影像

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM