【问题标题】:ASP.Net Asynchronous Postback stopping JavaScript graph from drawingASP.Net 异步回发停止绘制 JavaScript 图形
【发布时间】:2020-11-05 22:20:28
【问题描述】:

我有一个 JavaScript 图表,它正在读取 GridView 表数据并在页面上绘图,它工作得非常好。在选择不同的下拉时,我还有一个下拉目,在选择不同的下拉时异步更新表数据。发生这种情况时,JavaScript 在最初正确加载页面后将不再绘制数据。我的理论是 JavaScript 首先运行并注意到表数据在其初始状态为空,因为异步刷新最终在 JavaScript 运行后完成。

如何在异步刷新后执行 JavaScript?我曾尝试将脚本放在 UpdatePanel 的 <ContentTemplate> 部分,但这似乎没有什么不同。

<asp:UpdatePanel ID="upTeamSelect" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
        <div class="form-grid">               
            <p>Team</p>
            <asp:DropDownList ID="cmbUser" cssclass="form-list" runat="server" AutoPostBack="True" DataSourceID="AP_Users" DataTextField="sr_userName" DataValueField="sr_usserName">
            </asp:DropDownList>

            <asp:SqlDataSource ID="AP_Team"  runat="server" ConnectionString="<%$ ConnectionStrings:<REDACTED>> %>" SelectCommand="SELECT [sr_userName] FROM [sr_users] WHERE ([sr_active] = @sr_active)" >
                <SelectParameters>
                    <asp:Parameter DefaultValue="TRUE" Name="sr_active" Type="Boolean" />
                </SelectParameters>
            </asp:SqlDataSource>
        </div>
    </ContentTemplate>
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="cmbTeam" EventName="SelectedIndexChanged" />
    </Triggers>
</asp:UpdatePanel>

<Script>
    <!-- Javascript graph here -->
</Script>

【问题讨论】:

    标签: javascript asp.net vb.net


    【解决方案1】:

    您可以为此使用客户端页面生命周期事件。
    例如。如果您想在页面的每次回发后执行某些操作(无论是 ajax 回发还是完整回发),您可以像这样使用 page_loaded 事件:

    Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(pageLoaded);
    
    function pageLoaded(sender, args) {
        // update/init your graph data here
    }
    

    有关客户端事件处理的更多信息,请查看here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多