Dis*_*ile 8 c# asp.net ajax updatepanel repeater
我有一个更新面板,其条件和ChildrenAsTriggers的UpdateMode设置为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>
Run Code Online (Sandbox Code Playgroud)
我尝试加载此页面时收到以下错误:
A control with ID 'btnAddSomething' could not be found for the trigger in UpdatePanel 'updPnlMain'.
Run Code Online (Sandbox Code Playgroud)
由于我的btnAddSomething控件位于转发器中,并且可能不会立即存在,因此它的行为就像它不存在一样.我怎么能绕过这个?
Muh*_*tar 13
因为你的控制权在,repeater control
并且它超出了范围Trigger collection
.顺便说一下你不需要add trigger
因为你的按钮控件已经在UpdatePanel
,它会在你点击按钮时更新.
编辑:如果您真的想更新updPnlMain更新面板,可以使用解决方案.您可以放入另一个更新面板并将按钮放在该面板中.例如
<asp:UpdatePanel ID="updButton" runat="server" UpdateMode="Conditional">
<asp:Button ID="btnAddSomething" runat="server" OnClick="btnAddSomething_Click" />
</ContentTemplate>
Run Code Online (Sandbox Code Playgroud)
然后简单地updPnlMain.Update();
在btnAddSomething_Click
事件中调用该方法.
它实际上会做你想要的:)
归档时间: |
|
查看次数: |
30594 次 |
最近记录: |