UpdatePanel Repeater内LinkButton造成页面刷新问题

本意: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.问题解决。

上一篇:SQL Server 查看存储过程


下一篇:三层体系结构总结(五)