Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.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 UpdatePanel内的LinkButton触发完全回发_Asp.net_Asp.net Ajax_Updatepanel_Linkbutton - Fatal编程技术网

Asp.net UpdatePanel内的LinkButton触发完全回发

Asp.net UpdatePanel内的LinkButton触发完全回发,asp.net,asp.net-ajax,updatepanel,linkbutton,Asp.net,Asp.net Ajax,Updatepanel,Linkbutton,我在使用部分回发的更新面板中动态添加控件时遇到问题。我在代码隐藏中动态生成一些LinkButton并设置它们的触发器,但当我启动它们时,它们会完全回发,甚至在启动它们时不会调用LinkButton事件。它们被放置在“divPageNumber”中 *.aspx: </asp:DataList> <table style="width: 100%"> <tr style="width: 10%">

我在使用部分回发的更新面板中动态添加控件时遇到问题。我在代码隐藏中动态生成一些LinkButton并设置它们的触发器,但当我启动它们时,它们会完全回发,甚至在启动它们时不会调用LinkButton事件。它们被放置在“divPageNumber”中

*.aspx:

</asp:DataList>
               <table style="width: 100%">
                   <tr style="width: 10%">
                       <td>
                           <asp:LinkButton ID="lnkPrevious" runat="server" Font-Bold="True"
                               NavigateUrl="~/Default.aspx" OnClick="lnkPrevious_Click" Width="100px">&lt;&lt;صفحه قبل</asp:LinkButton>
                       </td>
                       <td style="width: 80%">
                           <div id="divPageNumber" dir="rtl" runat="server">
                           </div>
                       </td>
                       <td style="width: 10%">
                           <asp:LinkButton ID="lnkNext" runat="server" Font-Bold="True"
                               NavigateUrl="~/Default.aspx" OnClick="lnkNext_Click" Width="80px">صفحه بعد&gt;&gt;</asp:LinkButton>
                       </td>
                   </tr>
               </table>
           </ContentTemplate>
           <Triggers>
               <asp:AsyncPostBackTrigger ControlID="LinkButton1" EventName="Command"></asp:AsyncPostBackTrigger>
               <asp:AsyncPostBackTrigger ControlID="LinkButton2" EventName="Command" />
               <asp:AsyncPostBackTrigger ControlID="LinkButton3" EventName="Command" />
               <asp:AsyncPostBackTrigger ControlID="LinkButton4" EventName="Command" />
               <asp:AsyncPostBackTrigger ControlID="LinkButton5" EventName="Command" />
               <asp:AsyncPostBackTrigger ControlID="LinkButton6" EventName="Command" />
               <asp:AsyncPostBackTrigger ControlID="LinkButton7" EventName="Command" />
               <asp:AsyncPostBackTrigger ControlID="LinkButton0" EventName="Command" />
               <asp:AsyncPostBackTrigger ControlID="btnSearchHead" EventName="Command" />
               <asp:AsyncPostBackTrigger ControlID="LinkButton8" EventName="Command" />
               <asp:AsyncPostBackTrigger ControlID="lnkNext" EventName="Click" />
               <asp:AsyncPostBackTrigger ControlID="lnkPrevious" EventName="Click" />                   
           </Triggers>

       </asp:UpdatePanel>

صفحه قبل
صفحه بعد
和*.cs:

LinkButton btnPage;
            for (int i = 1; i <= objPagedDataSource.PageCount; i++)
            {
                btnPage = new LinkButton();                    
                btnPage.ID = "btnPage" + i.ToString();                    
                if (i == GetCurrentPageNumber + 1)
                    btnPage.Font.Bold = true;
                btnPage.Width = 10;
                btnPage.Style["margin-right"] = "2px";
                btnPage.Style["margin-left"] = "2px";
                btnPage.Text = i.ToString();

                if (brand != "" && brand != null)
                    btnPage.PostBackUrl = "Default.aspx?brand=" + brand + "&Page=" + i.ToString();
                else if (model != "" && model != null)
                    btnPage.PostBackUrl = "Default.aspx?model=" + model + "&Page=" + i.ToString();
                else
                    btnPage.PostBackUrl = "Default.aspx?Page=" + i.ToString();

                divPageNumber.Controls.Add(btnPage);

                LinkButton lb = (LinkButton)divPageNumber.FindControl("btnPage" + i.ToString());
                lb.Click += new EventHandler(lnkdel_OnClick);

                //Creates a new async trigger
                AsyncPostBackTrigger trigger = new AsyncPostBackTrigger();
                trigger.ControlID = lb.UniqueID;
                trigger.EventName = "Click";
                UpdatePanel1.Triggers.Add(trigger);

                ScriptManager.GetCurrent(this).RegisterAsyncPostBackControl(lb);
            }
            UpdatePanel1.Update();

protected void lnkdel_OnClick(object sender, EventArgs e)
    {

    }
    protected void lnkPrevious_Click(object sender, EventArgs e)
    {
        //GetCurrentPageNumber -= 1;
        //BindDataToRepeter();
        Response.Redirect("Default.aspx?Page=" + (Convert.ToInt32(Page.Request["Page"]) - 1).ToString());
    }
    protected void lnkNext_Click(object sender, EventArgs e)
    {
        //GetCurrentPageNumber += 1;
        //BindDataToRepeter();

        Response.Redirect("Default.aspx?Page=" + (Convert.ToInt32(Page.Request["Page"]) + 1).ToString());
    }
LinkButton-btnPage;

对于(inti=1;i我从这个线程解决我的问题


我从这个线程解决我的问题


就完全回发而言,这是出于设计。即使在部分回发期间,页面的所有生命周期事件仍会执行。更多信息,请访问,我不理解本文,您能否帮助我修复我的代码。当您说完全回发时,您是指看到回发发生(页面被重新加载)或者,您没有看到回发发生,但所有页面生命周期事件都被触发?当我触发'lnkNext'或'lnkPrevious'和动态按钮时,会发生加载事件,并且加载事件中有以下代码:if(!page.IsPostBack){},但当我启动动态按钮时,IsPostBack是真的。但是静态按钮IsPostBack是假的。就完全回发而言,这是设计上的。即使在部分回发期间,页面的所有生命周期事件仍然会执行。更多信息,我不懂这篇文章,你能帮我修复我的代码吗。当你说完全回发时stback,您是说您看到回发发生(页面被重新加载)还是说,您没有看到回发发生,但是所有页面生命周期事件都被触发?当我触发'lnkNext'或'lnkPrevious'并且动态按钮时,会发生加载事件,并且加载事件中有以下代码:if(!page.IsPostBack){,但当我启动动态按钮时,IsPostBack为true,而静态按钮IsPostBack为false。