Full postback triggered by LinkButton inside UpdatePanel
我无法在具有部分回发的更新面板中动态添加控件。我在背后的代码中动态生成了一些LinkBut??ton并设置了它们的触发器,但是当我将它们触发时,它们会进行完整的回发,甚至不会调用LinkBut??ton Event当我解雇它们时,它们被放在\\'divPageNumber \\'
*。aspx:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | </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"><<???? ???</asp:LinkButton> </td> <td style="width: 80%"> </td> <td style="width: 10%"> <asp:LinkButton ID="lnkNext" runat="server" Font-Bold="True" NavigateUrl="~/Default.aspx" OnClick="lnkNext_Click" Width="80px">???? ???>></asp:LinkButton> </td> </tr> </table> </ContentTemplate> <Triggers> </asp:AsyncPostBackTrigger> </Triggers> </asp:UpdatePanel> |
和* .cs:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | 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 \\'和\\'lnkPrevious \\'是静态添加并起作用的。但是\\'lnkdel_OnClick \\'不起作用。
我在做什么?
谢谢
我通过此线程解决了我的问题
http://forums.asp.net/t/1895457.aspx/1