C# ASP.NET方法不适用于信号器调用,仅适用于事件

C# ASP.NET方法不适用于信号器调用,仅适用于事件,c#,asp.net,signalr,C#,Asp.net,Signalr,我有一个initGrdAvail()方法,它从MySQL数据库获取gridview的最新信息并更新gridview private void initGrdAvail() { string selectedDept = drpLstDepts.SelectedItem.Text; string query; if (selectedDept == "ALL") query = "SELECT unitnum,

我有一个initGrdAvail()方法,它从MySQL数据库获取gridview的最新信息并更新gridview

    private void initGrdAvail()
    {
        string selectedDept = drpLstDepts.SelectedItem.Text;
        string query;
        if (selectedDept == "ALL")
            query = "SELECT unitnum,department,rank,name FROM units WHERE status='Available'";
        else
            query = "SELECT unitnum,department,rank,name FROM units WHERE status='Available' AND department='"+selectedDept+"'";
        using (MySqlConnection con = new MySqlConnection(cnnStrData))
        {
            using (MySqlCommand cmd = new MySqlCommand(query))
            {
                cmd.Connection = con;
                MySqlDataAdapter da = new MySqlDataAdapter(cmd);
                DataSet ds = new DataSet();
                da.Fill(ds);
                grdViewDisAvailable.DataSource = ds;
                grdViewDisAvailable.DataBind();
            }
        }
    }
当对按钮单击事件或下拉列表上的选定索引更改事件调用此方法时,此方法工作正常

这里是从信号器调用它的地方:

        HubProxyRegister.On<string, string>("UpdateUnitStatus", (username, status) =>
        { initGrdAvail(); });
HubProxyRegister.On(“UpdateUnitStatus”(用户名,状态)=>
{initGrdAvail();});
但是,当从传入信号器事件调用此方法时,它不会更新gridview。我可以看到这个方法正在被调用并在调试过程中完全运行,但是当从某种按钮事件调用该方法时,它只在页面上显示更新的gridview

我对ASP.NET相当陌生,这与Signalr不使用回发或其他方式有关吗?我试着四处搜索了一下,但运气不太好


谢谢

您能在将此方法绑定到信号器事件的位置发布位吗?我不熟悉SignalR,但您使用的方法可能无法访问UI元素。@DavidC799是的,很抱歉我忘记发布该部分。我已经用signer调用的位置更新了帖子。loadDispatchViews()调用initGrdAvail()也是这样吗?我认为这与以下事实有关:
HubProxyRegister.On的回调(“UpdateUnitStatus”,(username,status)=>{loadDispatchViews();})是一项任务,将在单独的线程上运行。但我原以为会有错误!是的,loadDispatchViews()只调用initGrdAvail(),initGrdBusy),initGrdUnavail()。我想我明白你的意思。看着你给我的链接,我有点困惑如何使用它。如果你不介意的话,我该如何格式化?