从服务器端 C# 调用 Javascript 函数

Call Javascript Function From Server Side C#

我创建了一个显示清单列表的报告。用户可以通过清单编号搜索此列表。当代码 运行ning 搜索时,我正在显示一个 Gif:

但是这个Gif不会在搜索结束后消失。我可以看到正在显示正确的记录,因此搜索已结束,但 Gif 仍留在屏幕上。

单击搜索按钮时调用该函数。

 <asp:Button runat="server" CssClass="btnSearch loading" ID="btnSearch" Text="Search" OnClick="btnSearch_Click" OnClientClick="ShowLoadingGif()" ToolTip="Search" />    

<div id="dvLoading">
        <table>
            <tr>
                <td id="tdLoadingSave"><img src="/images/loading.gif" alt="Loading..." title="Loading..." /></td>
            </tr>
        </table>            
    </div>

    function ShowLoadingGif() {
                closefiltermenu();
                $("#tdLoadingSave").html($("#tdLoadingSave").html() + "<br/> Please wait, manifest list is loading");
                $('#dvLoading').fadeIn("500");
        }

 function CloseLoadingGif() {
        $('#dvLoading').fadeOut("500");
    }

然后 运行 从另一个函数进行搜索:

 protected void Search()
    {
        string Field = ddlSearchBy.SelectedValue;
        string SearchString = txtSearchBy.Text;

        string[] SearchFields = null;
        string[] SearchStrings = null;

        if (!string.IsNullOrEmpty(SearchString) && Field != "null")
        {
            SearchFields = new string[] { Field };
            SearchStrings = new string[] { SearchString };
        }

        List<lookupManifestAnalysis> main = lookupManifestAnalysis.SearchManifestItems(Company.Current.CompanyID,
                SearchStrings,
                SearchFields);

        gvResults.DataSource = main;
        gvResults.DataBind();

        udpResults.Update();

        ClientScript.RegisterStartupScript(GetType(), "Search", "CloseLoadingGif();", true);

    }

但是搜索结束后如何停止显示 Gif?

当您在服务器端执行代码时 ASP 您不应使用客户端功能来显示或隐藏元素。而是尝试使用 .Net 中的 Ajax 控件。

您将需要使用 AJAX 进度控制。看这里:

https://msdn.microsoft.com/en-us/library/bb386421.aspx

ScriptManager.RegisterStartupScript(this, GetType(), "CloseLoadingGif","CloseLoadingGif();", true);

如果您正在处理 asp.net UpdatePanel 和 UpdateProgress,请使用以下代码:

ScriptManager.RegisterStartupScript(myUpdatePanelID,myUpdatePanelID.GetType(),"CloseLoadingGif", "CloseLoadingGif();", true);