在UpdatePanel- COMMAND ARGUMENT WORKAROUND中找不到具有ID的控件

时间:2016-03-02 16:47:16

标签: vb.net updatepanel repeater scriptmanager

这是一个带触发器的更新面板:

<asp:UpdatePanel runat="server" ID="UpdatePanel1" ChildrenAsTriggers="true">
   <ContentTemplate>
      <p> Much wow! </p>
   </ContentTemplate>
   <Triggers>
   <asp:AsyncPostBackTrigger ControlID='x' EventName="Command" />
   </Triggers>
</asp:UpdatePanel>

这是我的转发器(不在更新面板内):

<asp:Repeater ID="Repeater1" runat="server">
   <ItemTemplate>
     <asp:LinkButton ID="x" OnCommand="x_command" runat="server" CommandArgument='<%#Eval("y") %>'>
   </ItemTemplate>
</asp:Repeater>

我无法找到linkbutton的controlID。 我已尝试注册控件,控件已注册,但更新面板仍无法找到控件。

注册控制的代码 -

Protected Sub Repeater1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.RepeaterItemEventArgs) Handles Repeater1.ItemDataBound
   Dim lb As LinkButton = TryCast(e.Item.FindControl("dude1"), LinkButton)
   ScriptManager.GetCurrent(Me).RegisterAsyncPostBackControl(lb)
   Response.Write("afa")
End Sub

1 个答案:

答案 0 :(得分:0)

我刚刚意识到 - 所有我不需要做的就是在更新面板中将按钮定义为触发器。 当您将其注册为asyncpostback控件时,它已充当触发器。

希望这可以帮助任何陷入困境的人。