javascript - 从 asp.net 中的线程将项目添加到表中

标签 javascript asp.net multithreading callback

我有一个 HTML 表格,当单击按钮时,我会在 ASP.NET 回调上通过 javascript 添加项目。

HTML:

<%@ Page Language="C#" CodeFile="Hello5.aspx.cs" Inherits="ClientCallback" %>
<html>
<head>
  <script>
    function AddResult()
    {
        GetResults("blah", "");
    }
    function UpdateTable(itemText)
    {
        var mytable = document.getElementById("mytable");
        var rowID = mytable.rows.length;
        var newrow = mytable.insertRow(rowID);
        newrow.insertCell(0).appendChild(document.createTextNode(rowID));
        newrow.insertCell(1).appendChild(document.createTextNode(itemText));
    }
  </script>
</head>
<body>
    <form id="form1" runat="server" />
    <input type="button" onclick="AddResult()" value="Add Result" />
    <table border="1" id="mytable">
        <th colspan="2">Results</th>
    </table>
</body>
</html>

隐藏代码:

public partial class ClientCallback : System.Web.UI.Page, System.Web.UI.ICallbackEventHandler
{
    string _inputVal;
    protected void Page_Load(object sender, EventArgs e)
    {
        string cbReference = Page.ClientScript.GetCallbackEventReference(this, "arg", "UpdateTable", "context");
        string callbackScript = "function GetResults(arg, context)" + "{ " + cbReference + "} ;";
        Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "GetResults", callbackScript, true);
    }
    void ICallbackEventHandler.RaiseCallbackEvent(string eventArgument)
    {
        _inputVal = eventArgument;
    }
    string ICallbackEventHandler.GetCallbackResult()
    {
        return _inputVal + " " + DateTime.Now.ToString();
    }
}

这个回调系统工作正常,但它不完全是我想要的。

我有一个 C# 函数来根据给定的输入数字计算一组结果。这可能需要很长时间,因此我想在线程上运行它,并在获得新结果时更新表。

但我不知道如何从我的 C# 线程调用 javascript...有什么想法吗?

最佳答案

当线程结束时,您无法从服务器向客户端发送通知。唯一的办法就是让客户端定期向服务器请求(使用ajax或者刷新页面)来检查线程的结果是否可用。

关于javascript - 从 asp.net 中的线程将项目添加到表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3482753/

相关文章:

java - 如何让循环停止

javascript - 单页各种计算脚本

javascript - 无需编写多个 if else 语句即可验证多个变量

javascript - 调用 onClick 方法之前的 ASP 警报文本

java - Java 应用程序服务器是否能够销毁线程?如果是,如何?

c++ - 构造线程执行派生类的成员函数

javascript - DialogFlow v2 访问 token 无法生成

javascript - 使用 JQuery 查询父类的最简洁方法

c# - ASPX C# 页面超时

c# - 将非属性绑定(bind)到数据网格列 DataField?