无法为 UpdatePanel 中的触发器找到具有 ID 的控件 - 命令参数变通方法
A control with ID could not be found for the trigger in UpdatePanel- COMMAND ARGUMENT WORKAROUND
这是一个带有触发器的更新面板:
<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>
我找不到链接按钮的控件ID。
我试过注册控件,控件注册了但是更新面板仍然找不到控件。
注册控件的代码-
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
我刚刚意识到 - 我不需要做的就是在更新面板中将按钮定义为触发器。
当您将其注册为 asyncpostback 控件时,它已经充当触发器。
希望这对遇到困难的人有所帮助。
这是一个带有触发器的更新面板:
<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>
我找不到链接按钮的控件ID。 我试过注册控件,控件注册了但是更新面板仍然找不到控件。
注册控件的代码-
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
我刚刚意识到 - 我不需要做的就是在更新面板中将按钮定义为触发器。 当您将其注册为 asyncpostback 控件时,它已经充当触发器。
希望这对遇到困难的人有所帮助。