本意:UpdatePanel1内嵌的Repeater1中带有LinkButton1,
将由LinkButton1触发页面的UpdatePanel2更新,而不需要更新UpdatePanel1,当然也不需要更新整个页面。
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" ChildrenAsTriggers="False" runat="server"> <Triggers> <asp:AsyncPostBackTrigger ControlID="Button1" /> </Triggers> <ContentTemplate> <asp:Repeater ID="Repeater1" runat="server"> <ItemTemplate> <asp:LinkButton runat="server" ID="LinkButton1" OnCommand="LinkButton_Command" CommandName="ShowGroups" CommandArgument="1">测试链接按钮</asp:LinkButton> </ItemTemplate> </asp:Repeater> </ContentTemplate> </asp:UpdatePanel>
<asp:UpdatePanel ID="UpdatePanel2" 。。。。
1.UpdatePanel1不被内部控件触发更新的条件:UpdateMode="Conditional" ChildrenAsTriggers="False"
如果我们在普通按钮<asp:Button ID="Button1" runat="server" Text="测试按钮" ..../>代替以上红色部分,可以达到效果,
但是我们不想要<asp:Button>.
2.因此使用 <asp:LinkButton>,但是以上代码执行后,点击测试链接按钮会刷新整个页面。
如果UpdatePanel1内不包含Repeater1,点击测试链接按钮似乎看起来又是正常的.
3.难道是Repeater1问题?百思不得其解,无意看到一篇博文<谨记给UpdatePanel中动态添加的控件赋ID>
研究了一下,最后确定是由于Repeater1使得LinkButton的ID变成了自动ID的问题。
4.给LinkButton 添加属性 ClientIDMode="AutoID",当然 ID="LinkButton1"得保留。
5.问题解决。
时间: 2024-11-05 12:29:46