【问题标题】:Refresh Gridview on timer but keep state of expanded divs在计时器上刷新 Gridview 但保持扩展 div 的状态
【发布时间】:2014-09-14 20:36:57
【问题描述】:

我有一个在更新面板和计时器中运行的 Gridview。它仅显示主要标题和其他主要部分,然后在其下方是其余详细信息。用户可以单击标题 div 并使用以下 Javascript 为每一行展开/隐藏其下方的内容

<script type="text/javascript">
    $(function () {
        $('.requestDetails').css('display', 'none');
        $('.expandResults').click(function () {
            $(this).parent().children(".requestDetails").slideToggle(500);
            $(this).toggleClass('slideSign');
            return false;
        });
    });

HTML 看起来像这样

<asp:Timer runat="server" ID="ctlTimer" Enabled="false" Interval="5000" OnTick="OnTimerIntervalElapse"/>
                <asp:UpdateProgress ID="UpdateProgress1" runat="server" 
    AssociatedUpdatePanelID="UpdatePanel1">
            <ProgressTemplate>
            </ProgressTemplate>
        </asp:UpdateProgress>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" ViewStateMode="Enabled">
<Triggers>
                <asp:AsyncPostBackTrigger ControlID="ctlTimer" EventName="Tick" />
            </Triggers>
    <ContentTemplate><asp:GridView ID="gvTasks" runat="server" AutoGenerateColumns="False" OnRowDataBound="gvTasks_RowDataBound"
            OnRowCommand="gvTasks_RowCommand" 
            OnRowCreated="gvTasks_RowCreated" CssClass="gvGridTasksActive">
            <Columns><asp:TemplateField HeaderText="Task" SortExpression="RequestSent">
                    <ItemTemplate>
                        <div class="expandResults" id="expandResults">
                            <div class="title">Title stuff..
                            </div>
                            <div class="timeStamp">Timestamp stuff..
                            </div>
                            </div>

                        <br class="clearfloat" />
                        <div class="requestDetails" id="requestDetails">
                        <br /><hr />
                            Request details stuff....</div></ItemTemplate>
                    <EditItemTemplate>

                    </EditItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>

我遇到的问题是,当页面刷新时,它会使用扩展的 div 扩展我的所有行。有没有一种方法可以让页面自动刷新,以便我的 c# 可以在添加新记录时重新绑定网格,但它会记住当前扩展的内容?

【问题讨论】:

    标签: c# javascript jquery asp.net gridview


    【解决方案1】:

    建议使用带有适当参数的 iCallBack 并异步获取修改后的数据,并在 JavaScript 的帮助下追加/删除/修改网格中的数据。

    您可以异步获取数据并检查每一行的更改并相应地绑定新的 HTML。

    发布代码会很困难

    【讨论】:

      猜你喜欢
      • 2021-05-03
      • 2020-12-20
      • 1970-01-01
      • 2012-11-27
      • 1970-01-01
      • 2020-06-09
      • 1970-01-01
      • 1970-01-01
      • 2014-05-24
      相关资源
      最近更新 更多