gpt4 book ai didi

c# - 无法为 UpdatePanel 中的触发器找到具有 ID 的控件

转载 作者:太空狗 更新时间:2023-10-29 18:20:51 26 4
gpt4 key购买 nike

我有一个更新面板,其中 UpdateMode of Conditional 和 ChildrenAsTriggers 设置为 false。我只想要一些控件来引起异步回发:

<asp:UpdatePanel ID="updPnlMain" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="false">
<ContentTemplate>

// ...
<asp:Repeater ID="rptListData" runat="server">
<ItemTemplate>
<asp:Button ID="btnAddSomething" runat="server" OnClick="btnAddSomething_Click" />
</ItemTemplate>
</asp:Repeater>
// ...
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btnAddSomething" EventName="Click" />
</Triggers>
</asp:UpdatePanel>

当我尝试加载此页面时出现以下错误:

A control with ID 'btnAddSomething' could not be found for the trigger in UpdatePanel 'updPnlMain'.

因为我的 btnAddSomething 控件在转发器中,可能不会马上出现,所以它就像不存在一样。我该如何解决这个问题?

最佳答案

因为您的控件位于repeater 控件 中并且它超出了Trigger 集合 的范围。顺便说一句,您不需要添加触发器,因为您的按钮控件已经在UpdatePanel 中,当您单击该按钮时它会更新。

编辑:如果您真的想更新 updPnlMain 更新面板,有一个解决方案。您可以放入另一个更新面板并将按钮放在该面板中。例如

<asp:UpdatePanel ID="updButton" runat="server" UpdateMode="Conditional">
<asp:Button ID="btnAddSomething" runat="server" OnClick="btnAddSomething_Click" />
</ContentTemplate>

然后只需在 btnAddSomething_Click 事件中调用 updPnlMain.Update(); 方法。

它实际上会做你正在寻找的:)

关于c# - 无法为 UpdatePanel 中的触发器找到具有 ID 的控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6667398/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com