【问题标题】:GridView flickering when placed inside UpdatePanel with Timer (asp.net)使用 Timer (asp.net) 放置在 UpdatePanel 内时,GridView 闪烁
【发布时间】:2013-07-05 20:51:43
【问题描述】:

我在 UpdatePanel 中放置了一个 GridView 和一个计时器。现在的问题是,每次计时器刷新 GridView 中的图像时都会闪烁。有人知道为什么吗?这是我的代码:

 <asp:UpdatePanel ID="UpdatePanel3" runat="server" UpdateMode="Conditional">
        <ContentTemplate>
            </asp:Timer>
            <asp:Timer ID="Timer1" runat="server" Interval="100" OnTick="Timer1_Tick">
            </asp:Timer>
            <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:masterConnectionString3 %>" SelectCommand="[GET DATA FROM SQL SERVER]"></asp:SqlDataSource>
            <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" CellPadding="4" DataSourceID="SqlDataSource1" ForeColor="Black" GridLines="None" Width="940px">
                <Columns>
                    <asp:BoundField DataField="Column1" HeaderText="Column1" HtmlEncode="False" ReadOnly="True" SortExpression="Column1" />
                    <asp:BoundField DataField="Column2" HeaderText="Column2" ReadOnly="True" SortExpression="Column2" />
                </Columns>
            </asp:GridView>
                <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
                </ContentTemplate>
            </asp:UpdatePanel>

【问题讨论】:

    标签: c# asp.net ajax gridview updatepanel


    【解决方案1】:

    我通过在 GridView 中使用本地图像来修复它,并且仅在需要时使用以下方法更新 GridView:

    更新面板中的UpdateMode="Conditional" 和代码隐藏中的UpdatePanel.Update();。现在效果很好!

    参考和示例代码位于:http://msdn.microsoft.com/en-us/library/system.web.ui.updatepanel.updatemode.aspx

    【讨论】:

      【解决方案2】:

      GridView 闪烁,因为计时器发生了回发。将计时器放在不同的更新面板中。

      【讨论】:

      • 刚试了一下,问题是如果Timer在不同的更新面板,GridView不会更新...
      • 如果您需要计时器来更新面板,那么您基本上就被卡住了。更新面板仅对其内部的成员造成部分回发。这意味着您在更新时总是会看到“闪烁”。唯一可能的解决方案是使用 javascript 更新它。
      • 我只想在计时器中出现特定条件时更新面板。我试过 UpdatePanel.Update();当条件设置为 true 但它不起作用时:(
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-18
      相关资源
      最近更新 更多