2011-03-12 56 views
3

我很想动态地添加AsyncPostback触发对UpdatePanel控件更新面板和AsyncPostbackTriggers

<asp:Content ID="Content1" ContentPlaceHolderID="Content" runat="server"> 
    <asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
<Triggers></Triggers> 
    <ContentTemplate> 
      <asp:ListView ID="ListView2" runat="server"> 
       <ItemTemplate> 
        <asp:ImageButton ID="btnRemove" runat="server" ImageUrl="~/Images/Delete.png" CommandName='<%# DataBinder.Eval(Container.DataItem, "QuestionsID") %>'/> 
       </ItemTemplate> 
      </asp:ListView> 
</ContentTemplate> 
</asp:UpdatePanel> 
</asp:Content> 

的问题是,我无法弄清楚如何做到这一点中发现的ImageButtons!

我已经尝试过不同的方式,但没有似乎工作。

我最后一次尝试,试图增加触发器在ListView ItemDataBound事件

Private Sub ListView2_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.ListViewItemEventArgs) Handles ListView2.ItemDataBound   
     For Each btnError As ImageButton In e.Item.Controls.OfType(Of ImageButton)() 
      Select Case btnError.ID 
       Case "btnRemove" 
        Dim trigger As New AsyncPostBackTrigger() 
        trigger.ControlID = UpdatePanel1.FindControl(btnError.ID).UniqueID 
        UpdatePanel1.Triggers.Add(trigger) 
      End Select 
     Next 
    End Sub 

这当然是不正确的。

所以,你可以告诉我如何将动态触发器添加到UpdatePanel控件?

+0

您的代码似乎没问题 - 至少,它在C#中对我有用......您是否收到任何错误?顺便说一句 - 因为你的按钮已经在更新面板中了,所以没有理由动态添加它们,因为它们会生成异步回发。 – 2011-03-12 21:01:06

+0

@Denis Ivin哦,我的上帝!我想我需要全职休息!你介意发布这个答案吗? – OrElse 2011-03-12 21:14:52

+0

:)很高兴帮助 – 2011-03-12 23:54:34

回答

1

由于您的按钮已经在更新面板中,所以没有理由动态添加它们,因为它们会生成异步回发。