teardrop
teardrop

Reputation: 545

Full postback triggered by LinkButton inside UpdatePanel

I'm having trouble dynamically adding controls inside an update panel with partial postbacks.I generate some LinkButton dynamically in code behind and set trigger of them, but when I fire them they full postback, even LinkButton Event does not get called when I fire them.They are placed in the '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>

and *.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());
    }

'lnkNext' and 'lnkPrevious' is static added and work. but 'lnkdel_OnClick' doesn't work.

What am I doing?

thanks

Upvotes: 1

Views: 11107

Answers (1)

teardrop
teardrop

Reputation: 545

I solve my problem from this thread

http://forums.asp.net/t/1895457.aspx/1

Upvotes: 2

Related Questions